在C++中,成員函數指針是指向類的成員函數的指針。以下是如何聲明和使用C++成員函數指針的示例:
class MyClass {
public:
void myFunction(int x) {
cout << "My Function: " << x << endl;
}
};
typedef void (MyClass::*MyFunctionPtr)(int);
在上面的示例中,我們聲明了一個成員函數指針MyFunctionPtr
,它指向MyClass
類中的一個參數為int的成員函數。
MyClass obj;
MyFunctionPtr ptr = &MyClass::myFunction;
(obj.*ptr)(10);
在上面的示例中,我們通過&MyClass::myFunction
獲取了成員函數指針,并使用obj.*ptr
來調用myFunction
成員函數,傳入參數10。
通過成員函數指針,我們可以在運行時動態選擇調用哪個成員函數,這在一些設計模式和回調函數實現中非常有用。