c++

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

小亿
107
2023-07-28 05:22:17
栏目: 编程语言

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

0
看了该问题的人还看了