制作一个包含代码的变量?

时间:2016-12-18 19:08:56

标签: c++ variables

有没有办法可以在C ++中创建一个变量,其中包含我可以在以后运行的代码?

例如:

string code = "cout << "Hello World" << endl;"?

或者制作一个可以在以后运行的文件或记事本文件?就像有人将某个员工添加到某个程序一样,它会创建一个文件并添加所有员工的信息。然后,当程序用户通过写出他们的姓名或唯一ID来说“我想看到那个雇员”时,它会显示所有员工的信息。

谢谢。

2 个答案:

答案 0 :(得分:0)

解决方案是使用#define预处理器指令创建一个宏: -

#define code cout << "Hello World" << endl;

现在,无论你使用“代码”这个词,它都会被cout&lt;&lt; “Hello World”&lt;&lt; ENDL;

例如:

int main()
{
    code
    return 0;
}

答案 1 :(得分:0)

是的,这是一种相对较新的语法。

std::string msg = "Hello world";
auto code = [&std::cout, =msg]() {std::cout << msg;};

// Now we can pass code about as a variable.

code(); // runs it, even if std::cout and msg has gone out of scope

优点是比较功能或键访问功能或类似功能可以附加到更大的结构上。你也可以用lambdas构建整个程序,但这相当理论化。

但是,您必须在编译时指定C ++代码。你无法动态编译C ++(还)。