此问题已在此处有答案:
C++ using function as parameter(4个答案)
How to pass a function as parameter in C++(2个答案)
昨天关门了。
我需要传递一个没有参数的函数给另一个函数,我该怎么做?
我在谷歌上搜索了一下,发现我需要从functional
使用std::function
,但不知道如何传递没有参数的函数。
此问题已在此处有答案:
C++ using function as parameter(4个答案)
How to pass a function as parameter in C++(2个答案)
昨天关门了。
我需要传递一个没有参数的函数给另一个函数,我该怎么做?
我在谷歌上搜索了一下,发现我需要从functional
使用std::function
,但不知道如何传递没有参数的函数。
3条答案
按热度按时间2fjabf4q1#
使用
std::function
,您可以像下面的示例那样实现:c++ shell5vf7fwbs2#
这取决于你要调用的函数类型。不能传递属于类的函数,至少不能直接传递。如果你想传递一个普通的函数,你可以把函数作为一个指针(它的内存地址)传递。对于类函数,你可以使用lambda来做类似的事情。
ql3eal8s3#
如果你不想使用
std::functional
,你可以使用函数指针,这在C中也是有效的。你可以有这样的东西:
在函数
loop()
中,第二个参数是函数指针。它的类型与你想要调用的函数的返回类型相同,在括号中你可以写上你要调用的函数有参数的任何类型。因此,如果我的函数sayHello()
实际上是int sayHello(double value)
,则必须像这样指定loop()
函数:你可以用e来调用
sayHello()
函数。例如func(3.14);
。您可以像往常一样使用sayHello()
的返回值。