私は特定の問題を抱えており、どちらのアプローチが他のアプローチよりも優れているかで立ち往生しています。
ユニオンメンバーのデータを定義する列挙型を持つ構造体または継承を持つクラスのグループ
サンプルコードを以下に示します。
ユニオンベースの構造
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;
};