谁在运行时创建变量(在 C++ 中)

who to make variables during run-time (in c++ )

本文关键字:C++ 变量 运行时 创建      更新时间:2023-10-16

我想让我的程序的用户定义变量,然后对它们进行数学运算,如"定义a:integer,b:double"然后"打印a*b"

发现我可以使用"boost any",但我需要动态识别变量的类型,因为想使用类的变量(对象)....所以我想使用该类中定义的操作 (+* ...)

这就像我想制作一个不同类型的容器,但是当我使用这个容器中的物品时稍后我使用为此项目类型定义的操作!

提前致谢

这是不可能的,因为当C++编译代码时,它会丢失代码中的许多信息,例如函数名称和变量类型。它在编译的那一刻就知道它们,它生成的机器代码可以按照你的代码说去做,但最终它都被丢弃了。(好吧,不完全正确,但接近于此)。

因此,如果要评估用户输入的表达式,则需要在自己的代码中进行大量分析。也许另一种具有"eval"语句的动态语言在这里会更有用?

增加:建议语言:Javascript。因为您可以在浏览器中在您喜欢的任何平台上使用它。

从评论:

为什么C++?为什么不是已经提供动态类型和运行时评估的语言?–

那么你建议伙计们用什么语言?

蟒。

如果你必须使用c ++,我建议嵌入一种动态脚本语言。Python,Lua和Javascript都会浮现在脑海中。

您将能够做您想做的所有事情,并且仍然可以将代码编译为.exe。

我认为您应该创建和更新一些在算术运算期间输入和查阅定义命令时正在更新的符号表。通常,您不需要存储任何类型的值,您可以假设一组有限的可能值类型(整数,实数等)并在表中表示它。就我个人而言,我会为从公共基派生的每个值类型创建一个具有特定操作的类,引用将存储在符号表中。

最好的方法是在C++中使用多态性