Ableiten von enum
-
Hallo
Das was im Titel steht wird wohl nicht möglich sein. Trifft aber das Problem das ich zu lösen habe.
Von einer Basisklasse nennen wir sie "CBaseClass" werden 2 weiter Klassen abgleitet. "CDerived1" und "CDerived2".
Die Klasse CBaseClass enthält eine Membervariable m_option vom Typ Enum.
Beim Konstruktor der jeweiligen Klassen wird der Wert für m_option in einem int übergeben.
Die Klassen haben nun gemeinsame aber auch unterschiedliche Optionen.
Gemeinsame Optionen
0 - KeineOption
1 - OptionAllgemeinspeziell Derived1
2 - OptionHund
3 - OptionKatzespeziell Derived2
2 - OptionHaus
3 - OptionHütteNun wäre das Problem gelöst wenn ich einen enum hätte für die Gemeinsamen optionen und davon die anderen beiden ableiten würde.
Da dies aber wohl nicht geht, hier die Frage hat mir jemand ne andere Lösung?
-
scheint irgendwie nicht so trivial zu sein.
-
Man "erbt" Variablen, nicht Werte. Fuegt man eine neue Eigenschaft im Ableitungsschritt hinzu, so braucht es eine neue Variable. Alternativ kann auch eine virtuelle Funktion a la c->hasValue(14) in der Basisklasse deklariert werden, die die Frage nach Hund/Katze mit Ja/Nein beantwortet.
-
Guck mal hier:
http://www.codeproject.com/KB/cpp/InheritEnum.aspx
-
Alternativ kann auch eine virtuelle Funktion a la c->hasValue(14) in der Basisklasse deklariert werden, die die Frage nach Hund/Katze mit Ja/Nein beantwortet.
Das mag vieleicht bei 2 Optionen funktionieren. Habe aber mehrere, das war nur ein Beispiel.
Danke Source2702 für den Link. Da gibt es aber einen ganz entscheidenden Grund wieso das ganze für meinen Fall nicht geht. Und das steht schon in der Überschrift: unambiguously. Das heißt die Werte müssen eindeutig sein. Bei mir gibt es ja aber die Zahl 2 und 3 mehrfach.
-
Ok. Der weiterführende Link führte mich zu einer passenderen Lösung:
http://www.codeproject.com/KB/cpp/ImprovedEnum.aspx.Danke.