成员函数,函数指针和 std::function 的区别很明显。成员函数的调用需要依赖于对象实例(即 this 指针),因此它们的处置惩罚方式与普通函数不同。以下是具体分析:
1. 成员函数指针
- 定义:成员函数指针是指向类成员函数的指针,它的类型包罗类信息。
- 特点:
- 语法复杂,尤其是涉及多级指针和类型转换时。
- 调用成员函数时需要显式转达对象实例(this 指针)。
- 只能指向特定类的成员函数,不能指向普通函数或 lambda 表达式。
- 适用场景:适用于需要直接调用特定类成员函数的场景。
示例代码:
[code]#include class MyClass {public: int add(int a, int b) { return a + b; }};// 接受成员函数指针和对象实例作为参数的函数template void executeMemberFunc(T* obj, int (T::*func)(int, int), int a, int b) { std::cout |