我有一个特定的问题,我被困在哪种方法比另一种更好:
具有枚举的结构,定义联合成员中的数据或一组具有继承的类
示例代码如下:
基于联合的结构
typedef union TokenValue{
bool bValue;
long lvalue;
double dvalue;
std::string svalue;
}
class Token{
public:
TokenType type;
TokenValue value;
};
类继承
class TokenBase{
public:
TokenType type;
};
class TokenNumber: public TokenBase{
public:
bool isInt;
long lvalue;
double dvalue;
};
class TokenString: public TokenBase{
public:
std::string svalue;
};