国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C++ > 正文

C++獲取類的成員函數的函數指針詳解及實例代碼

2020-01-26 14:14:35
字體:
來源:轉載
供稿:網友

C++獲取類的成員函數的函數指針詳解

用一個實際代碼來說明。

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成員函數,取得的是該函數在內存中的實際地址,而且因為static成員是全局的,所以不能用A::限定符  void(*ptrstatic)()=&A::staticmember;     //nonstatic成員函數 取得的是該函數在內存中的實際地址    void(A::*ptrnonstatic)()=&A::nonstatic;  //虛函數取得的是虛函數表中的偏移值,這樣可以保證能過指針調用時同樣的多態效果  void(A::*ptrvirtual)()=&A::virtualmember;  //函數指針的使用方式  ptrstatic();  (a.*ptrnonstatic)();  (a.*ptrvirtual)();}

可以參考《C++ Primer(3rd)》第532頁13.6指向類成員的指針一節~

 1.一個指向外部函數的指針聲明為:

void(*pf)(char*,constchar*);void strcpy(char* dest,constchar* source);pf=strcpy;

2.一個指向類A成員函數的指針聲明為:

void(A::*pmf)(char*,constchar*);

聲明的解釋是:pmf是一個指向A成員函數的指針,返回無類型值,函數帶有二個參數,參數的類型分別是char * 和 const char *。除了在星號前增加A:: ,與聲明外部函數指針的方法一樣。

3.給成員指針賦值的方法是將函數名通過指針符號&賦予指針名。

如下所示:

class A{  public:   void strcpy(char*,constchar*);   void strcat(char*,constchar*);};pmf =&A::strcpy;

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 浙江省| 江山市| 盖州市| 颍上县| 喀喇沁旗| 镇康县| 万山特区| 高邮市| 古田县| 山阴县| 康乐县| 玛纳斯县| 肇东市| 尤溪县| 星子县| 花莲市| 安庆市| SHOW| 清远市| 微山县| 阳曲县| 房山区| 望谟县| 庆安县| 乌拉特前旗| 桐城市| 苍南县| 翁源县| 施甸县| 新龙县| 德保县| 双桥区| 治县。| 岳阳市| 固原市| 綦江县| 井研县| 龙里县| 伊宁市| 宜兴市| 昌宁县|