函數指針指向的是函數而非對象,和其他指針一樣,函數指針指向某種特定類型,函數的類型由它的返回類型和形參類型共同決定,與函數名無關。
記個概念,暫時沒用到,用到再細細地學一下【逃】



重載函數的指針
編譯器通過指針類型決定選用哪個函數,指針類型必須與重載函數的某一個精確匹配。
函數指針形參
形參可以是指向函數的指針。此時形參看起來是函數類型,實際上卻是當成指針使用。

返回指向函數的指針
#用到再補全,先挖個坑
寫個小程序練練手
編寫函數的聲明,令其接受兩個int形參並且返回類型也是Int,然后聲明一個cector對象,令其元素是指向該函數的指針。
寫四個函數,分別對兩個int值執行加減乘除運算,在vector對象中保存指向這些值的指針,調用vector對象中的每個元素並輸出其結果
1 #include <iostream> 2 #include<vector> 3 using namespace std; 4 5 int func1(int a, int b) 6 { 7 return a + b; 8 } 9 int func2(int a, int b) 10 { 11 return a - b; 12 } 13 int func3(int a, int b) 14 { 15 return a * b; 16 } 17 int func4(int a, int b) 18 { 19 return a / b; 20 } 21 22 void Compute(int a, int b, int(*p)(int, int)) 23 { 24 cout << p(a, b) << endl; 25 } 26 int main() 27 { 28 int i = 5, j = 10; 29 decltype(func1) *p1 = func1, *p2 = func2, *p3 = func3, *p4 = func4; 30 vector<decltype(func1)*> vF = { p1,p2,p3,p4 }; 31 for (auto p : vF) 32 { 33 Compute(i, j, p); 34 } 35 system("pause"); 36 return 0; 37 }
