久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4181|回復: 0
打印 上一主題 下一主題
收起左側

typedef 定義函數指針

[復制鏈接]
跳轉到指定樓層
樓主
ID:57353 發表于 2014-2-20 11:16 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
關于C++中函數指針的使用(包含對typedef用法的討論)
(一)簡單的函數指針的應用。
//形式1:返回類型(*函數名)(參數表)
char (*pFun)(int);
char glFun(int a){ return;}
void main()
{
    pFun = glFun;
    (*pFun)(2);
}
        第一行定義了一個指針變量pFun。首先我們根據前面提到的“形式1”認識到它是一個指向某種函數的指針,這種函數參數是一個int型,返回值是char類型。只有第一句我們還無法使用這個指針,因為我們還未對它進行賦值。
        第二行定義了一個函數glFun()。該函數正好是一個以int為參數返回char的函數。我們要從指針的層次上理解函數——函數的函數名實際上就是一個指針,函數名指向該函數的代碼在內存中的首地址。
        然后就是可愛的main()函數了,它的第一句您應該看得懂了——它將函數glFun的地址賦值給變量pFun。main()函數的第二句中“*pFun”顯然是取pFun所指向地址的內容,當然也就是取出了函數glFun()的內容,然后給定參數為2。
(二)使用typedef更直觀更方便。
//形式2:typedef 返回類型(*新類型)(參數表)
typedef char (*PTRFUN)(int);
PTRFUN pFun;
char glFun(int a){ return;}
void main()
{
    pFun = glFun;
    (*pFun)(2);
}
        typedef的功能是定義新的類型。第一句就是定義了一種PTRFUN的類型,并定義這種類型為指向某種函數的指針,這種函數以一個int為參數并返回char類型。后面就可以像使用int,char一樣使用PTRFUN了。
        第二行的代碼便使用這個新類型定義了變量pFun,此時就可以像使用形式1一樣使用這個變量了。

三)在C++類中使用函數指針。
//形式3:typedef 返回類型(類名::*新類型)(參數表)
class CA
{
public:
    char lcFun(int a){ return; }
};
CA ca;
typedef char (CA::*PTRFUN)(int);
PTRFUN pFun;
void main()
{
    pFun = CA::lcFun;
    ca.(*pFun)(2);
}
        在這里,指針的定義與使用都加上了“類限制”或“對象”,用來指明指針指向的函數是那個類的這里的類對象也可以是使用new得到的。比如:
CA *pca = new CA;
pca->(*pFun)(2);
delete pca;
        而且這個類對象指針可以是類內部成員變量,你甚至可以使用this指針。比如:
        類CA有成員變量PTRFUN m_pfun;
void CA::lcFun2()
{  
   (this->*m_pFun)(2);
}
        一句話,使用類成員函數指針必須有“->*”或“.*”的調用。

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产精品一二三区 | 国产一区免费 | 中文字幕国 | 在线播放一区二区三区 | 午夜视频在线观看网站 | 亚洲国产成人精品久久 | www.97国产 | 天堂av影院 | 玖玖色在线视频 | 91大神在线资源观看无广告 | a天堂在线| 久久国产精品精品国产色婷婷 | 日韩高清在线观看 | 久久久久久久综合色一本 | 天天干视频 | 91精品国产乱码久久久久久久久 | 亚洲欧洲精品成人久久奇米网 | 久久精品国产一区二区三区不卡 | 九九在线视频 | 中文字幕精品视频 | 亚洲精品久久久久中文字幕欢迎你 | 日本精品久久久久久久 | 亚洲精品播放 | 久久精品aaa | 亚洲一区二区在线播放 | 日韩精品久久久久久 | 欧美日韩一区二区在线观看 | 色婷婷婷婷色 | 午夜视频网站 | 中文字幕av网站 | 亚洲国产成人av好男人在线观看 | 国产视频1区2区 | 久久久久久久一区 | 欧美中文字幕 | 精品国产乱码久久久久久蜜柚 | 国产色在线 | 成人免费看片 | 九九看片| 欧美日韩一区二区三区视频 | 逼逼视频| 亚洲成人第一页 |