【发布时间】:2021-09-01 12:30:24
【问题描述】:
首先,我想在 main 中创建一个函数。其次,我想将此函数作为参数传递给另一个函数。请问可以吗?
对于第一点,我知道可以使用 lambda 函数或结构,如以下链接中所述:Can we have functions inside functions in C++?
但是,我没有设法将此函数作为参数传递给另一个函数。
更准确地说,我想要这样的东西:
int main()
{
void add(int x, int y){cout<<x+y<<endl;}
int a = 1;
int b = 2;
apply_operator(add,a,b);
}
其中 apply_operator 在另一个文件中定义:
void apply_operator(void (*operator)(int,int),int x,int y)
{
operator(x,y);
}
【问题讨论】:
-
我确定
apply_operator没有像你说的那样定义,因为operator是 C++ 关键字。 -
不能在另一个函数中声明或定义一个函数。你能做的最好的就是 lambda。