c++ - 按以字符串形式给出的名称调用函数

标签 c++ function

在 C++ 中是否有可能调用在另一个函数中作为字符串 arg 给出名称的函数。例如:

void func1()
{
// do something
}

void func2()
{
// do something
}

int main()
{
    call("func1");
    call("func2");
}

最佳答案

您可以创建一个 std::mapstd::functionC++11

  std::map<std::string, std::function<void()> > call;

  call["func1"] = func1 ;
  call["func2"] = func2 ;

然后,

  call["func1"]( ) ;

关于c++ - 按以字符串形式给出的名称调用函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26946497/

相关文章:

c++ - 处理 boost 变量和 boost 函数

javascript - AJAX/Javascript 功能不起作用

c++ - 在模块之间传递对象的替代方法

c++ - Qt:如何在大小写不敏感模式下减去QString的两个QSet

c++ - 全局范围内的对象在程序退出时导致崩溃

javascript - 如何将参数传递给 JavaScript 中 compose 函数内的每个函数

function - iPhone iOS 4 - 安排应用程序在特定时间和日期运行功能

java - JPA 2.1 - 无法调用 Oracle 函数

c++ - 将数据从 std::istream 保存到文件的最佳方式

c++ - 编译器错误 : does not name a type