在C++中,成員函數(shù)指針定義的方法如下:
// 定義一個成員函數(shù)指針
ReturnType (ClassName::*pointerName)(ParamType1, ParamType2, ...);
// 例如,定義一個指向類成員函數(shù)的指針
void (MyClass::*funcPtr)(int);
其中,ReturnType
是成員函數(shù)的返回類型,ClassName
是定義該成員函數(shù)的類名,pointerName
是指針的名稱,ParamType1, ParamType2, ...
是成員函數(shù)的參數(shù)類型。
如果要使用成員函數(shù)指針,可以將其指向具體的成員函數(shù),然后通過對象調(diào)用該成員函數(shù)指針,如下所示:
// 定義一個類
class MyClass {
public:
void myFunction(int x) {
cout << "Value is " << x << endl;
}
};
int main() {
// 創(chuàng)建一個對象
MyClass obj;
// 定義成員函數(shù)指針并指向myFunction函數(shù)
void (MyClass::*funcPtr)(int) = &MyClass::myFunction;
// 使用對象調(diào)用成員函數(shù)指針
(obj.*funcPtr)(10);
return 0;
}
在上面的例子中,首先定義了一個類MyClass
,然后創(chuàng)建了一個對象obj
。接著定義了一個成員函數(shù)指針funcPtr
,并將其指向MyClass
類中的成員函數(shù)myFunction
。最后通過對象obj
調(diào)用成員函數(shù)指針,輸出了Value is 10
。