gpt4 book ai didi

c++ - 如何将函数设置为变量并从中调用?

转载 作者:太空狗 更新时间:2023-10-29 23:43:38 24 4
gpt4 key购买 nike

我想知道是否可以在 C++ 中执行此操作?

例如:

varFunction = void TestFunction();
RunCode(varFunction);

最佳答案

对于 C++11 及更高版本,您可以使用 std::function存储函数指针和函数对象。

但存储 function pointers从一开始就在 C++ 中可用。这意味着您可以存储函数的地址并在以后调用它。

顺便说一句,lambda expressions也非常有用(它们表示的 closure 可以作为 std::function-s 分配或传递)


这是一个示例,展示了三种不同的方法来实现您的要求:

#include <iostream>
#include <functional>

void RunCode(const std::function<void()>& callable) {
callable();
}

void TestFunction() {
std::cout << "TestFunction is called..." << std::endl;
}

int main() {
std::function<void()> varFunction_1 = TestFunction;
void (*varFunction_2)() = TestFunction;

RunCode(varFunction_1);
RunCode(varFunction_2);
RunCode([]() { std::cout << "TestLambda is called..." << std::endl; });

return 0;
}

但这只是冰山一角,传递函数指针和函数对象作为参数在algorithms library中非常普遍。 .

关于c++ - 如何将函数设置为变量并从中调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44984078/

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