gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-04 15:06:20 26 4
gpt4 key购买 nike

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

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com