kann eine abgeleitete class eine andere abgeleitete class enthalten?



  • kann eine abgeleitete class eine andere abgeleitete class enthalten? (die beide abgeleitete Klassen haben gleiche Basisklasse)

    -class A { protected: int ID; ...};
    -class Y : public A {...};
    -class X : public A { private: Y y; ...};

    es sieht nicht schön aus, oder? wechle Nachteile gibt es?
    oder es ist genau gleiche wie folgende: ?

    -ohne class A
    -class Y { private: int ID; ...};
    -class X { private: int ID; Y y; ...};



  • Wow du verwechslest da eine Assoziation mit einer Vererbung.Das Erste ist eine Vererbung+Assoziation und das zweite ist ledeglich eine Assoziation. Die Unterschiede sind dir ja bekannt oder?



  • @Firefighter :
    danke sehr, leider noch nicht verstanden.
    also zuerst:
    Das erste Schreibweise ist nomal? oder die logische Beziehung zwischen X und Y ist ein bisschen durcheinander?

    das Zweite:
    -class A { protected: int ID; };
    -class X : public A {};
    -class Y { protected: A a; };

    wechlen Unterschied gibt es zwischen X und Y? (bitte nicht Vererbung-Assoziation antworten)

    kann man sagen:
    X ist genau wie A, nur Klassename.



  • damo schrieb:

    das Zweite:
    -class A { protected: int ID; };
    -class X : public A {};
    -class Y { protected: A a; };

    X hat genauso wie A einen Member, nämlich ID, und Y hat gar keine Beziehung zu X weder zu A, Y hat ausschließlich A a als protected(was hier eher sinnlos ist) Member.



  • X hat genauso wie A einen Member, nämlich ID, und Y hat gar keine Beziehung zu X weder zu A, Y hat ausschließlich A a als protected(was hier eher sinnlos ist) Member.

    danke schön. aber was du gesagt, wußte ich auch so. mein Problem ist:

    class A { private: Etwas e;};
    class Y : public A {...}; 
    class X : public A { private: Y y; ...};
    

    dann X ist :

    X
    {
      Etwas e;
      Y
      {
        Etwas e;
        ...
      }
      ...
    }
    

    solche "Etwas e" sehen redundant aus. Ist diese Definition schön? gibt es bessere Lösungen? vielen Dank noch mal.



  • Warum findest du, dass das blöd aussieht?
    Nehmen wir einmal das Beispiel von Windows. (Also nicht das OS).

    Da hast du vlt. ein Partentwindow und dieses hat dann mehrere Subwindows.
    Nun kann das Parentwindow ein etwas haben (z.B eine Position) und die Subwindows haben auch eine Position. (Welche dann ev. relativ ausgerichtet werden.).



  • @drakon :

    Da hast du vlt. ein Partentwindow und dieses hat dann mehrere Subwindows.
    Nun kann das Parentwindow ein etwas haben (z.B eine Position) und die Subwindows haben auch eine Position. (Welche dann ev. relativ ausgerichtet werden.).

    ja, stimmt!!! danke schön !


Anmelden zum Antworten