函數指針在類與全局中的區別

在全局中,可以直接定義

void test(int i){
 std::cout << i;

int main(){
 void (*pfn)(int);
 pfn = test;
 (*pfn)(1);
}

=========================================

但是如果要使用在類中的函數指針會比較麻煩

class MyClass{
 void test(int i){ std:: cout << i; }
}

int main(){
 // 聲明的時候需要帶類標識
 void (MyClass::*pfn)(int);
 pfn = MyClass::test;

 // 使用的時候需要先實例化一個類對象
 MyClass mc;
 (mc.*pfn)(1);
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章