有没有办法在 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/