C++中的成员函数指针可以用于存储和调用类的成员函数。下面是使用成员函数指针的示例:
#include <iostream>
using namespace std;
class MyClass {
public:
void func(int x) {
cout << "func: " << x << endl;
}
};
int main() {
MyClass obj;
// 定义成员函数指针
void (MyClass::*ptr)(int) = &MyClass::func;
// 使用成员函数指针调用函数
(obj.*ptr)(10);
return 0;
}
在上面的示例中,首先定义了一个名为ptr
的成员函数指针,它指向MyClass
类的成员函数func
。然后,使用成员函数指针调用函数时,需要使用成员访问运算符.*
,并将对象obj
作为第一个参数传递给成员函数指针。
输出:
func: 10
请注意,成员函数指针的类型需要与目标成员函数的类型完全匹配,包括参数类型和返回类型。如果成员函数是const
成员函数,则需要使用const
修饰符来声明成员函数指针。
还可以使用typedef
来简化成员函数指针的语法,如下所示:
#include <iostream>
using namespace std;
class MyClass {
public:
void func(int x) {
cout << "func: " << x << endl;
}
};
int main() {
MyClass obj;
typedef void (MyClass::*FuncPtr)(int);
FuncPtr ptr = &MyClass::func;
(obj.*ptr)(10);
return 0;
}