C++函数指针应用例子

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

版权声明:本文为hhjoerrrr原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。