c++ - 有没有办法在C++中通过名称动态调用函数

标签 c++ function c++14

我有一个这样命名的函数列表,void F1(), void F2().....

我要求用户输入一个数字,它会调用相应的函数。 因此,如果他们输入 5,它将调用 F5()

我想知道是否有一种方法可以通过将用户输入附加到函数调用来实现这一点,而不是使用一个非常长的 switch 语句。 类似于下面的代码

std::cout << "Please enter the number of the function you wish to call " << std::endl;

std::cin >> choice;

functionToCall = "F" + choice;

最佳答案

没有。 C++ 没有这种反射。

您始终可以创建一个将字符串映射到函数指针的结构,但您必须自己初始化该结构。

关于c++ - 有没有办法在C++中通过名称动态调用函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58357167/

相关文章:

c++ - Boost预处理器不扩展

c++ - std::cin 输入带空格?

javascript - 根据Fragment ID调用javascript函数

r - 如何将大型数据集中的 NA 转换为 0 或 1?

javascript - 将 .Net 控制值传递给 JavaScript 函数

c++ - T declval() 而不是 T && declval() for common_type

c++ - 将 VC++ 内联汇编程序移植到 x64(__stdcall Hook )

c++ - KeyRelease 事件从未发送

C++ 多变参数模板未绑定(bind)到函数参数

c++ - 这个带有空捕获列表的 lambda 如何能够引用到达范围名称?