溫馨提示×

c++成員函數指針怎么使用

c++
小億
161
2023-07-28 05:22:17
欄目: 編程語言

C++中的成員函數指針可以用于存儲和調用類的成員函數。下面是使用成員函數指針的示例:

#include <iostream>
using namespace std;
class MyClass {
public:
void func(int x) {
cout << "func: " << x << endl;
}
};
int main() {
MyClass obj;
// 定義成員函數指針
void (MyClass::*ptr)(int) = &MyClass::func;
// 使用成員函數指針調用函數
(obj.*ptr)(10);
return 0;
}

在上面的示例中,首先定義了一個名為ptr的成員函數指針,它指向MyClass類的成員函數func。然后,使用成員函數指針調用函數時,需要使用成員訪問運算符.*,并將對象obj作為第一個參數傳遞給成員函數指針。

輸出:

func: 10

請注意,成員函數指針的類型需要與目標成員函數的類型完全匹配,包括參數類型和返回類型。如果成員函數是const成員函數,則需要使用const修飾符來聲明成員函數指針。

還可以使用typedef來簡化成員函數指針的語法,如下所示:

#include <iostream>
using namespace std;
class MyClass {
public:
void func(int x) {
cout << "func: " << x << endl;
}
};
int main() {
MyClass obj;
typedef void (MyClass::*FuncPtr)(int);
FuncPtr ptr = &MyClass::func;
(obj.*ptr)(10);
return 0;
}

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女