c++ - 是否可以在 C++ 中将函数作为参数传递?

标签 c++ function parameters

有没有办法在 C++ 中将函数作为参数传递,例如 the way that functions can be passed as parameters in C?我知道可以使用函数指针在 C 中将函数作为参数传递,我想知道在 C++ 中是否也可以这样做。

最佳答案

你可以像在 C 中那样做。但你也可以用 C++ 的方式(准确地说是 C++11):

// This function takes a function as an argument, which has no
// arguments and returns void.
void foo(std::function<void()> func)
{
    // Call the function.
    func();
}

您可以将普通函数传递给 foo()

void myFunc();
// ...
foo(myFunc);

但您也可以传递 lambda 表达式。例如:

foo([](){ /* code here */ });

您还可以传递一个函数对象(一个重载 () 运算符的对象。)通常,您可以传递任何可以用 () 调用的对象运营商。

如果您改为使用 C 方式,那么您唯一可以传递的就是普通函数指针。

关于c++ - 是否可以在 C++ 中将函数作为参数传递?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14206600/

相关文章:

c++ - 有什么方法可以在考虑崩溃的情况下同步进程吗?

c++ - Linux 共享库被加载两次

javascript - 按键过滤JSON

Javascript:函数绑定(bind)不适用于调用者

PHP 最佳实践 : Should a given parameter always have a consistent type?

arrays - 如何在 ruby​​ 中声明带有键的多维数组

c++ - 动态计算unicode字符

c++ - 变量不等同于 fstream 与声明

javascript - 我的 jquery 代码不起作用。为什么?

sql-server - 在查询的 DATEADD 函数中使用参数