寫C++時,可將函數指標用來作為另一個函數的參數。
如此該函數將可依傳入的函數指標決定呼叫不同函數。

函數指標作為函數參數的宣告語法如下:

回傳資料型態 函數名稱(參數1 資料型態, 參數2 資料型態, ....
             回傳資料型態(*函數指標名稱)(參數1 資料型態, 參數2 資料型態, ....));

範例如下:

// =================================
// FileName: FuncPtr2.cpp
// Author: Edison.Shih.

#include <iostream.h>

int Add_Num(int, int);
int Sub_Num(int, int);
void Cal_Num(char*, int, int, int (*)(int, int));

// =================================
int main(int argc, char **argv)
{
      int x, y;

      cout << "input x:";
      cin >> x;

      cout << "input y:";
      cin >> y;

      Cal_Num("x+y=", x, y, Add_Num);
      cout << endl;
      Cal_Num("x-y=", x, y, Sub_Num);
      cout << endl;
      return 0;
}

// =================================
int Add_Num(int a, int b) {return (a+b);}
int Sub_Num(int a, int b) {return (a-b);}

void Cal_Num(char *show, int a, int b, int (*p_Func)(int, int))
{
      cout << show << (*p_Func)(a, b);
}

// =================================

輸出結果如下所示:

input x:3
input y:4
x+y=7
x-y=-1

 

arrow
arrow
    全站熱搜

    Edison 發表在 痞客邦 留言(0) 人氣()