C++獲取類的成員函數(shù)的函數(shù)指針詳解及實(shí)例代碼
C++獲取類的成員函數(shù)的函數(shù)指針詳解
用一個(gè)實(shí)際代碼來(lái)說(shuō)明。
class A { public: staticvoid staticmember(){cout<<"static"<<endl;} //static member void nonstatic(){cout<<"nonstatic"<<endl;} //nonstatic member virtualvoid virtualmember(){cout<<"virtual"<<endl;};//virtual member }; int main() { A a; //static成員函數(shù),取得的是該函數(shù)在內(nèi)存中的實(shí)際地址,而且因?yàn)閟tatic成員是全局的,所以不能用A::限定符 void(*ptrstatic)()=&A::staticmember; //nonstatic成員函數(shù) 取得的是該函數(shù)在內(nèi)存中的實(shí)際地址 void(A::*ptrnonstatic)()=&A::nonstatic; //虛函數(shù)取得的是虛函數(shù)表中的偏移值,這樣可以保證能過(guò)指針調(diào)用時(shí)同樣的多態(tài)效果 void(A::*ptrvirtual)()=&A::virtualmember; //函數(shù)指針的使用方式 ptrstatic(); (a.*ptrnonstatic)(); (a.*ptrvirtual)(); }
可以參考《C++ Primer(3rd)》第532頁(yè)13.6指向類成員的指針一節(jié)~
1.一個(gè)指向外部函數(shù)的指針聲明為:
void(*pf)(char*,constchar*); void strcpy(char* dest,constchar* source); pf=strcpy;
2.一個(gè)指向類A成員函數(shù)的指針聲明為:
void(A::*pmf)(char*,constchar*);
聲明的解釋是:pmf是一個(gè)指向A成員函數(shù)的指針,返回?zé)o類型值,函數(shù)帶有二個(gè)參數(shù),參數(shù)的類型分別是char * 和 const char *。除了在星號(hào)前增加A:: ,與聲明外部函數(shù)指針的方法一樣。
3.給成員指針賦值的方法是將函數(shù)名通過(guò)指針?lè)?hào)&賦予指針名。
如下所示:
class A { public: void strcpy(char*,constchar*); void strcat(char*,constchar*); }; pmf =&A::strcpy;
感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!
相關(guān)文章
C語(yǔ)言編程C++編輯器及調(diào)試工具操作命令詳解
這篇文章主要介紹了C語(yǔ)言編程C++編輯調(diào)試工具操作命令詳解,本文章對(duì)C++調(diào)試工具的命令操作進(jìn)行了詳細(xì)的講解,有需要的朋友可以借鑒參考下2021-09-09C++實(shí)現(xiàn)list增刪查改模擬的示例代碼
本文主要介紹了C++實(shí)現(xiàn)list增刪查改模擬,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-12-12C語(yǔ)言實(shí)現(xiàn)的統(tǒng)計(jì)php代碼行數(shù)功能源碼(支持文件夾、多目錄)
這篇文章主要介紹了C語(yǔ)言實(shí)現(xiàn)的統(tǒng)計(jì)php代碼行數(shù)功能源碼,支持文件夾、多級(jí)目錄的統(tǒng)計(jì),在一些環(huán)境中會(huì)用到這個(gè)功能,需要的朋友可以參考下2014-08-08mfc入門(mén)教程之通過(guò)控制變量制作計(jì)算器
這篇文章主要介紹了mfc入門(mén)教程之通過(guò)控制變量制作計(jì)算器,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-04-04C++/Php/Python 語(yǔ)言執(zhí)行shell命令的方法(推薦)
下面小編就為大家?guī)?lái)一篇C++/Php/Python 語(yǔ)言執(zhí)行shell命令的方法(推薦)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-03-03C語(yǔ)言實(shí)現(xiàn)注冊(cè)登錄系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言實(shí)現(xiàn)注冊(cè)登錄系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-12-12