gpt4 book ai didi

C++ 函数指针

转载 作者:搜寻专家 更新时间:2023-10-31 00:04:13 26 4
gpt4 key购买 nike

using namespace std;

int addition (int a, int b)
{
return (a+b);
}

int subtraction (int a, int b)
{
return (a-b);
}
int operation (int x, int y, int (*functocall)(int,int))
{
int g;
g = (*functocall)(x,y);
return(g);
}
int main()
{
int m,n;
int (*minus)(int,int) = subtraction;

m = operation (7,5,addition);
n = operation (20,m,minus);
cout << n;
return 0;
}

谁能帮我解释一下这一行

int (*minus)(int,int) = subtraction;

非常感谢!

最佳答案

int (*minus)(int,int) = subtraction; 正在创建一个名为 minus 的变量,并为其分配一个指向名为 subtraction< 的函数的指针/强>。如果代码有效,则函数 subtraction 将被声明为 int subtraction(int a, int b);

处理函数指针的最佳方法是使用 typedef 使它们可读。

例子:

typedef int (*math_op)(int,int); // new types is math_op

int subtraction (int a, int b)
{
return (a-b);
}

math_op minus = subtraction;

稍后可以像调用普通函数一样调用它们。

例子:

int result = minus(10, 2); // result is now set to 8

重写的代码:

using namespace std;

typedef int (*math_op)(int,int); // new types is math_op

int addition (int a, int b)
{
return (a+b);
}

int subtraction (int a, int b)
{
return (a-b);
}

int operation (int x, int y, math_op functocall)
{
int g;
g = functocall(x,y);
return(g);
}

int main()
{
int m,n;
math_op minus = subtraction;

m = operation (7,5,addition);
n = operation (20,m,minus);
cout << n;
return 0;
}

关于C++ 函数指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4568352/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com