我的编译器给出了以下错误。请帮助我语法。
int sum(int a, int b);
int sum(int a, int b) {
return a+b;
}
int mult(int c, std::function<int(int a, int b)> sum2);
int mult(int c, std::function<int(int a, int b)> sum2) {
return sum2 * c;
}
int main() {
cout << mult(5, sum(2, 2));
return 0;
}
最佳答案
你完全错误地使用了它,你不应该在 mult
的调用中调用 sum
函数,而是调用它 < em>在 mult
:
int mult(int c, std::function<int(int a, int b)> sum2) {
return sum2(2, 2) * c;
}
int main() {
cout << mult(5, sum);
return 0;
}
您现在正在做的是将 sum
调用的结果传递给 main
,该结果是一个整数而不是函数。
关于c++ - 如何将函数作为参数传递给 C++ 中的另一个函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20114585/