c++ - 如何将函数作为参数传递给 C++ 中的另一个函数?

标签 c++

我的编译器给出了以下错误。请帮助我语法。

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/

相关文章:

c++ - 通过另一个 vector 推力访问 vector 元素

c++ - 错误 : expected primary-expression before 'OTHER' token

c++ - 将 float 转换为字符串

c++ - df 报告磁盘使用情况但共享内存/dev/shm 中没有文件

c++ - 静态编译会破坏ABI吗?

c++ - 类模板继承 C++

c++ - 使用 C++ OOP 设计更新总值

c++ - 使用opencv显示视频

c++ - 可变参数模板折叠程序在 gcc9 中失败

c++ - 在额外范围内包含 std::lock_guard