在C++中,成员函数指针的调用与普通函数指针的调用有所不同,因为成员函数指针需要通过对象来调用。以下是一个简单的示例代码来说明如何调用成员函数指针:
#include <iostream>
class MyClass {
public:
void memberFunc() {
std::cout << "Hello from member function!" << std::endl;
}
};
int main() {
MyClass obj;
void (MyClass::*ptr)() = &MyClass::memberFunc; // 定义成员函数指针
(obj.*ptr)(); // 通过对象调用成员函数指针
return 0;
}
在上面的示例中,我们定义了一个类MyClass,其中包含一个成员函数memberFunc。然后在主函数中创建了一个MyClass对象obj,并定义了一个成员函数指针ptr指向类成员函数memberFunc。
要调用成员函数指针,我们需要使用.*
操作符,将对象和成员函数指针结合在一起。在此示例中,我们通过(obj.*ptr)()
来调用成员函数指针,输出"Hello from member function!"。
需要注意的是,若成员函数是静态函数,则无需对象调用,只需使用->*
或.*
运算符。