虽然我相信这可能很简单,但我已经被这一段时间困扰了。我正在用c ++编写一个简单的编程语言,我无法找到用我的语言处理变量类型的最佳方法。
例如,我可能有八种不同的变量类型,包括字符串,数字,布尔,表等!我需要知道在c ++中存储这些内容的最佳方法,因为它们都是不同的类型,这意味着所有不同的类!我会有超过八种类型。代码是基于行的编译器。请帮忙!
答案 0 :(得分:1)
一般来说,你想使用一种叫做“拳击”的技术。例如,PHP沿着这些行使用了一些东西(更多C-ish):
enum class ScriptVarType {
STRING,
NUMBER,
};
struct ScriptVar {
ScriptVarType type;
union {
std::string str;
int num;
};
};
如果所有类型都是类,也可以使用派生类。他们可以共享ScriptVar
基类,您可以使用RTTI(或类似)获取实际类型,例如ScriptVarString
。
用户可定义类型只需要让成员定义所有用户部分。