編寫一個計算函數 compute ,對兩個整數進行各種計算。
有一個形參為指向具體算法函數的指針,根據不同的實參函數,用不同的算法進行計算。
編寫三個函數:求兩個整數的最大值、最小值、和。分別用這三個函數作為實參,測試 compute 函數。
C++代碼如下:
1 #include<iostream> 2 using namespace std; 3 4 int compute(int a, int b, int(*func)(int, int)) { //函數指針 5 return func(a, b); 6 } 7 8 int max(int a, int b) { 9 return (a > b) ? a : b; 10 } 11 12 int min(int a, int b) { 13 return(a < b) ? a : b; 14 } 15 16 int add(int a, int b) { 17 return a + b; 18 } 19 20 int main() { 21 int m, n, res_max, res_min, res_add; 22 cin >> m >> n; 23 res_max = compute(m, n, max); 24 res_min = compute(m, n, &min); //函數名代表的就是函數的起始地址,有無 & 都可以 25 res_add = compute(m, n, add); 26 cout << res_max << res_min << res_add << endl; 27 return 0; 28 }