C++中的函數指針


函數指針指向的是函數而非對象,和其他指針一樣,函數指針指向某種特定類型,函數的類型由它的返回類型和形參類型共同決定,與函數名無關。

  記個概念,暫時沒用到,用到再細細地學一下【逃】

  

  

  

  

  

 重載函數的指針

  編譯器通過指針類型決定選用哪個函數,指針類型必須與重載函數的某一個精確匹配。

 

函數指針形參

  形參可以是指向函數的指針。此時形參看起來是函數類型,實際上卻是當成指針使用。

  

返回指向函數的指針

  #用到再補全,先挖個坑

寫個小程序練練手

  編寫函數的聲明,令其接受兩個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 }

 


免責聲明!

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



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