Vererbung und virtuelle Klassen



  • Liebe C++ Leute,

    momentan sitze ich an einem Diagram mit verschiedenen Klassen und bin am überlegen Instanzvariablen wie und wieoft vererbt werden und komme auf keinen Grünen Zweig. Jeder Klasse X hat eien Klassenvariable x..Also Klasse A Variable a usw.

    A
         ^
         |
     ->  B   <-
    |    ^     |
    |    |     |
    C1   C2   C3
    ^    ^     ^
    |    |     |
    | -  D  -  |
    

    Nun will ich das die Klasse D die Variable a einmal bekommt und die variable b zweimal.
    Dazu muss ich ja Klassen zu virtuellen Basisklassen machen. Aber wie gehe ich dabei vor. Virtual sagt ja das es kein mehrfaches Erbgut gibt.
    Daher denke ich mal das der Pfeil von B nach A unbedingt virtuel ein muss. Aber wie ist es nun mit B? benötige ich da nur einal virtual z.B. zwischen c1 u c2 oder nocheinen?

    Es wäre super wenn mir jemand etwas auf die Sprünge helfen könnte und den Knoten in meinem Kopf etwas lockert 😉



  • Denies schrieb:

    Nun will ich das die Klasse D die Variable a einmal bekommt und die variable b zweimal.
    Dazu muss ich ja Klassen zu virtuellen Basisklassen machen.

    Wie kommst du darauf?

    class D
    {
        A a;
        B b1, b2;
    }
    

    Oder hast Du einen bestimmten Grund dafür Vererbung zu benutzen?



  • Na ja es geht ja darum Mehrfaches Erbgut zu vermeiden bzw. gezielt zu erzeugen.



  • Erklaere doch mal was du genau machen moechtest. Fuer mich hoert sich das an als waere Vererbung hier nicht die richtige Herangehensweise.

    Wenn man einen Hammer hat sieht halt schnell alles wie ein Nagel aus.


Anmelden zum Antworten