有没有办法可以在C ++中创建一个变量,其中包含我可以在以后运行的代码?
例如:
string code = "cout << "Hello World" << endl;"?
或者制作一个可以在以后运行的文件或记事本文件?就像有人将某个员工添加到某个程序一样,它会创建一个文件并添加所有员工的信息。然后,当程序用户通过写出他们的姓名或唯一ID来说“我想看到那个雇员”时,它会显示所有员工的信息。
谢谢。
答案 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 ++(还)。