麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > C > 正文

C++成員函數指針的使用方法

2023-06-09 12:08:04
字體:
來源:轉載
供稿:網友

本文介紹了C++編程中成員函數指針的使用方法。成員函數的指針一般是這么用的,如下例:

class A
{
      public:
            char hello(int a){ return a-'0'; }
};

typedef char (A::*PTRFUN)(int);

int main(){
      A* obj=new A();
    PTRFUN pFun;
    pFun = A::hello; 
    obj->(*pFun)(2);
    return 0;
}

但你可能遇到這樣的情況,C++要將對象和函數指針傳遞給c,然后由c去調用,你可能會這么做:

void invokeFunc(void* obj,void* pfunc)
{
       A* class_obj=(A*)obj;
       PTRFUN pFun=(PTRFUN )pfunc;
       class_obj->(*pFun)(2);

}

int main()
{
   A* obj=new A();
   PTRFUN pFun;
   pFun = A::hello; 
   invokeFunc(obj,pFun);
}

但是你會發現編譯器會對PTRFUN pFun=(PTRFUN )pfunc;報錯,你可以這樣做:

void invokeFunc(void* obj,void* pfunc)
{
   A* class_obj=(A*)obj;
   PTRFUN* pFun2=(PTRFUN*)pfunc;
   PTRFUN pFun=*pfunc;
   class_obj->(*pFun)(2);
}

int main()
{
    A* obj=new A();
    PTRFUN pFun;
    pFun = A::hello; 
    invokeFunc(obj,&pFun);
}

也就是將一級指針轉換為2級指針,這樣編譯就不會讀void*轉成員函數指針進行報錯。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 亚洲91精品 | 激情小视频在线观看 | 色婷婷久久久久久 | 国产做爰全免费的视频黑人 | 国产一区二区三区四区五区加勒比 | 在线观看视频亚洲 | 麻豆视频在线播放 | 日韩黄色影视 | 久久国产精品久久久久 | 高清视频91 | 精品一区二区免费视频视频 | 国产精品一区免费在线观看 | 婷婷久久网 | 特黄一区二区三区 | 日本人乱人乱亲乱色视频观看 | 亚州综合| 亚洲视屏在线观看 | 999精品久久久 | 久久亚洲春色中文字幕久久 | 亚洲精品久久久久久久久久久 | 国产又白又嫩又紧又爽18p | 一本免费视频 | 操碰视频在线观看 | 国产精品一品二区三区四区18 | 国产91精品亚洲精品日韩已满 | 羞羞答答视频 | 国产精品手机在线亚洲 | 亚洲欧美aⅴ | 久久久成人精品视频 | 国产一级做a爰片在线看 | 国产精品久久久久久久久久了 | 香蕉视频1024 | 亚洲欧美国产高清va在线播放 | 免费在线成人网 | 国产免费看片 | 看免费黄色一级片 | 黄色网络免费看 | 失禁高潮抽搐喷水h | 7777在线视频免费播放 | 性欧美极品xxxx欧美一区二区 | 黄色片在线免费播放 |