【轉】C/C++ 函數指針與類函數指針


轉自:http://blog.csdn.net/iamshaofa/article/details/17614615

 

 

C函數指針

int numAdd(int a, int b)  
{  
  return a+b;  
}  
int numMinus(int a, int b)  
{  
  return a-b;  
}  

直接定義一個函數指針
int (*funcTwo)(int, int) = numAdd;  

先typedef后使用
typedef int (*PtrFuncTwo)(int, int); 
 
int algo(int a, int b , PtrFuncTwo pft)  
{  
    return pft(a, b);  
}  
  
int main()
{  
    int a = algo(1, 2, numAdd);  
    return 0;  
}  

 

類函數指針

這個語法比較少用,其實我從來沒用到過,在萬能的C++ Primer里應該也找不到這個語法描述吧。

class CA
{  
 public:  
    int caAdd(int a, int b) {return a+b;}  
    int caMinus(int a, int b){return a-b;};  
};  


定義類函數指針類型
    typedef int (CA::*PtrCaFuncTwo)(int ,int);  

指針賦值
    PtrCaFuncTwo pFunction = &CA::caAdd;  
  
使用指針,注意使用括號
    CA ab;  
    int c = (ab.*pFunction) (1,2);  


 《C/C++學習指南》 - 我的講C/C++的教程,一看就懂的教程,所有必須要懂的知識點,來吧! 適用於初學者及三年工作經驗以內的同學,配套答疑平台,“讓編程變得簡單!”。

這本書的附錄專門有講解函數指針的問題。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM