c++函數指針

函數指針是指向函數而非指向對象的指針。像其餘指針同樣,函數指針也指向某個特定的類型。函數類型是由其返回類型及其形參表肯定,而與函數名無關。函數

eg:指針

bool (*pf)(int);將pf聲明爲指向函數的指針,它所指向的的函數帶有一個int類型的形參和bool類型的返回值對象

1,利用typedef簡化函數指針的定義it

typedef bool (*cpmFun)(int);引用

該定義表示cmpFun是一種指向函數指針類型的名字。要使用這種函數指針類型是,只須要使用cmpFun便可,不用寫完整定義。vi

2,指向函數指針的初始化和賦值

在引用函數名有沒有調用該函數是,函數名被自動解釋爲指向該函數的指針。

初始化:

cmpFun pf1 = 0;  //不綁定函數給此函數指針;

cmpFun pf2 = visit;  //將符合此類型的visit函數綁定給此函數指針

cmpFun pf3 = &visit //直接引用函數名等效於在函數名上應用取地址操做符

賦值

pf2 = pf1;

3,經過指針調用函數

cmpFun pf = visit;

visit(1);

pf(1); //pf隱式間接調用visit

(*pf)(1); //pf顯示間接調用visit

相關文章
相關標籤/搜索