C ++在编写脚本语言时如何处理类类型

时间:2016-05-02 00:46:56

标签: c++

虽然我相信这可能很简单,但我已经被这一段时间困扰了。我正在用c ++编写一个简单的编程语言,我无法找到用我的语言处理变量类型的最佳方法。

例如,我可能有八种不同的变量类型,包括字符串,数字,布尔,表等!我需要知道在c ++中存储这些内容的最佳方法,因为它们都是不同的类型,这意味着所有不同的类!我会有超过八种类型。代码是基于行的编译器。请帮忙!

1 个答案:

答案 0 :(得分:1)

一般来说,你想使用一种叫做“拳击”的技术。例如,PHP沿着这些行使用了一些东西(更多C-ish):

enum class ScriptVarType {
    STRING,
    NUMBER,
};

struct ScriptVar {
    ScriptVarType type;
    union {
        std::string str;
        int num;
    };
};

如果所有类型都是类,也可以使用派生类。他们可以共享ScriptVar基类,您可以使用RTTI(或类似)获取实际类型,例如ScriptVarString

用户可定义类型只需要让成员定义所有用户部分。

相关问题