在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!"。
需要注意的是,若成員函數是靜態函數,則無需對象調用,只需使用->*
或.*
運算符。