C++函数指针应用例子
前段时间在写代码的时候,想让程序根据一个函数运行出的结果,从四个函数中自动选择一个函数运行,这四个函数我们就取名叫
value_0;
value_1;
value_2;
value_3;
假设value_0是这样的:
int value_0(int a, int b) {
int result = a + b;
return result;
}
value_1是这样的:
int value_1(int a, int b) {
int result = a - b;
return result;
}
value_2:
int value_2(int a, int b) {
int result = a * b;
return result;
}
value_3:
int value_3(int a, int b) {
int result = a / b;
return result;
}
四个函数分别对应加减乘除操作
我现在假设有个函数decide,想实现:根据decide的结果决定运行value_0 - value_3中的其中一个
decide:
int decide(int a, int b) {
int result = a + b;
return result;
}
(假如a=1,b=0,那么就会运行value_1; a=1,b=2就运行value_3,etc…)
这时就可以用函数指针,定义一个side_func
int(*side_func[4])(int,int);
前面那个int是指函数返回类型(value0-3都是返回int),后面两个int是参数类型,所以这也说明如果要用函数指针,那你想指代的一堆函数的返回类型和参数类型及个数要相同
接下来只需要赋值:
side_func[0] = value_0;
side_func[1] = value_1;
side_func[2] = value_2;
side_func[3] = value_3;
调用:
int which_fun_to_run = decide(0,1); //假设调用value_1
int final_result = side_func[which_fun_to_run](4,3);
//final_result = 4 - 3 = 1