原文地址:
https://blog.csdn.net/qq_5027...
#include<iostream>#include<vector>#define NDEBUGusing namespace std;//练习6.54-6.57 定义函数int fun1(int a, int b) { return a + b;}int fun2(int a, int b) { return a - b;}int fun3(int a, int b) { return a * b;}int fun4(int a,int b){ return a / b;}void compute(int a, int b, int p(int,int)) {//函数指针作形参,函数类型会主动转换成指向函数的指针,也可写成void compute(int a, int b, int (*p)(int,int)) cout << p(a, b) << endl;}int main() { typedef int (*func)(int a, int b); vector<func> v = {&fun1,fun2,fun3,fun4};//函数名作为一个值时,&是选加 for (auto s : v) { compute(10, 2, s); } return 0;}