Dipl. User mit summa cum laude
Das was Magor geschrieben hat ist die methode, die ich auch empfohlen haette ...
zur Not mach es mit Mehrfachvererbung ...
Nehmen wir an, obj1, obj2 und obj3 sind von base abgeleitet. Dann kannst du einer Variablen vom Typ base auch ein Objekt vom Typ obj1, obj2 oder obj3 zuweisen. (Vorsicht Copyoperator), was aber ueber Zeiger oder Referenzen viel eindeutiger ist.
Mit Unions zu arbeiten war schon unter C nicht ganz ohne und eine haeufige Fehlerquelle. Unter C++ gerade bei Operatoren wuerde ich dir dringend abraten, da es teilweise von Compiler zu Compiler und Architektur zu architektur unterschiedlich sein kann, wie die Objekte im Speicher gehandhabt werden ...
Das sicherste ist Zeiger der Basisklasse verwenden und mit Virtuellen Funktionen zu arbeiten. Im OOP Idealfall sollten ja keinerlei Variablen eines Objektes von aussen erreichbar sein ... das halte ich aber fuer uebertrieben und kaum realisierbar .. zumindest hab ichs noch nie komplett hinbekommen