c++成员函数指针怎么使用

c++
1002
2023/7/18 5:22:17
栏目: 编程语言
开发者测试专用服务器限时活动,0元免费领,库存有限,领完即止! 点击查看>>

C++中的成员函数指针可以用于存储和调用类的成员函数。下面是使用成员函数指针的示例:

#include 
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 
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;
}

辰迅云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>

推荐阅读: c++中transform函数报错怎么解决