在C++中,指向類成員的指針可以用來訪問類的成員函數和成員變量。下面是一些常見的用法示例:
class MyClass {
public:
void myFunction() {
cout << "Hello, World!" << endl;
}
};
int main() {
MyClass obj;
// 聲明一個指向成員函數的指針
void (MyClass::*funcPtr)() = &MyClass::myFunction;
// 使用指針調用成員函數
(obj.*funcPtr)();
return 0;
}
class MyClass {
public:
int myVariable = 10;
};
int main() {
MyClass obj;
// 聲明一個指向成員變量的指針
int MyClass::*varPtr = &MyClass::myVariable;
// 使用指針訪問成員變量
cout << obj.*varPtr << endl;
return 0;
}
注意,指向成員函數的指針需要指定類的名稱(如MyClass::*
),而指向成員變量的指針不需要指定。此外,指向成員函數的指針使用時需要通過對象指針(或引用)來調用,而指向成員變量的指針可以直接訪問成員變量。