轉自: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++的教程,一看就懂的教程,所有必須要懂的知識點,來吧! 適用於初學者及三年工作經驗以內的同學,配套答疑平台,“讓編程變得簡單!”。
這本書的附錄專門有講解函數指針的問題。