Grundsätzlich ich die < < Operator für meine Tokentype-Struktur überlasten müssen, die wie folgt (kann nicht geändert werden, ich habe es auf diese Weise verwenden)eine C++ Vereinigung verwenden, wenn das Mitglied, das Sie ist
struct tokenType
{
int category ; // one of token categories defined above
union
{
int operand ;
char symbol ; // '+' , '-' , '*' , '/' , '^' , '='
} ;
int precedence() const ;
}
Mein Header für die Überlastung Methode ist: aus dem Wert in der Struktur tk, zu drucken, entweder einen int oder char
ostream & operator<< (ostream & os , const tokenType & tk)
Also, was ich brauche. Wie kann ich auf das zugreifen, was in der Union enthalten ist, wenn ich nicht weiß, ob die Variable Operand oder Symbol ist? Vielen Dank.