C++ 如何在C++;?

C++ 如何在C++;?,c++,C++,Python函数exec()是一个非常好的编程工具 例如: /****************************************************** * we have array names={"ali","hamed"} * goal is declare string ali="ali" and hamed="hamed" ******************************************************/ Pythoncode: #

Python
函数
exec()
是一个非常好的编程工具

例如:

/******************************************************
 * we have array names={"ali","hamed"}
 * goal is declare string ali="ali" and hamed="hamed"
 ******************************************************/
Python
code:

# used for command
# below line is a syntax python
# in python we dont declare variable
list=["ali","hamed"]  #python syntax
#in python we dont wite {
#python work with tab insteed of {}
for i in list:
    temp = i + ' = "' + i + '"' #temp is a string 
    exec(temp)

我的问题是:C++中是否存在类似的函数?如果不是,如何在C++中实现它?p> Python的
exec
和其他语言中的类似功能(即JavaScript中的
eval
)只起作用,因为它们是解释语言,在运行时定义了变量


你不能直接做C++中的请求,因为它是编译语言,要求所有变量和它们的名称在编译时都知道。

你可以做到,但是这不是微不足道的,它只会在工作中使用。 其中安装了C++编译器的系统。基本上,C++是 编译,所以如果你想执行一些C++的字符串, 您必须编译它:将它写入一个文件(可能使用 其他样板文件(如一些包含),调用编译器 (使用
系统
)构建DLL,然后加载DLL

实际上,即使你付出了所有的努力,你也可能 发现它没有你想象的那么有用。因为C++需要静态 几乎所有东西的声明,都很难 编写这样的小片段并使其可用。(你 例如,必须将其包装在函数中,并生成 C++代码不支持所有的变量。 出于软件工程的原因,这类事情;最 使Python等语言对小型应用程序非常灵活的功能, 快速编写程序,在以下情况下会导致严重的维护问题: 用于大型健壮软件。不同的语言是不同的 为不同的目的而设计。这很容易创建 使用Python作为顶级胶水的混合语言系统 (如果您需要您描述的设施),以及 调用C++来完成繁重的工作(在这样的设施下) 允许用户随意触发内核转储)

可选地,可以在C++中实现一种小型语言。对于 保留用户定义的变量,例如,使用

std::map
, 而不是声明变量。(这毕竟是什么
Python不支持。)

如果您计划使用字符串作为参数,这不是一个好主意! 您可以简单地使用一个id生成器函数,并为要使用的每个字符串提供一个id,或者如果您使用的是类,则可以将该函数放入构造函数中。
根本不需要那个exec()list的元素已经是字符串了,为什么要用
str(i)
转换它们呢?这应该完成什么?在我的Python解释器中运行它并不能说明任何事情。@drewmm因为我们希望ali=“ali”\uuuuu将exec()删除并运行它\uuuuuuuu我的Python是2。7@unkulunkulu是的。患重感冒,服用伪麻黄碱,打字不直:(AlnAk)这个代码是python语法而不是C++——我解释了Python是如何在代码中工作的,请读它,它已经在Python中工作了,因为它是一种解释语言,而 Exc/<代码>命令允许执行任意的字符串。C++是编译的,所以不是。-好。但是我如何在C++中编写代码而不使用Excel?@BB通过回答约翰的评论,描述你的最终目标,而不是C++所没有的不可能的特征。也可以在谷歌上查找“XY问题”。@ MM-BB列表来自哪里?如果编译时可用,我建议生成所需的C++作为构建过程的一部分(使用Python!)。如果没有,您将得到很多系统依赖项;我会选择
std::map
解决方案。@MM-BB但请解释一下您使用它的目的。(根据我的经验,它通常也不是Python中最好的解决方案。我使用过很多Python,但我从未以这种方式使用过
exec