编写一个函数,使用函数指针(函数回调) 对两个整数进行各种计算
编写一个计算函数 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 }