Ergebnis 1 bis 6 von 6
  1. #1
    Bin mit Glied Avatar von sscherma
    Registriert seit
    Jan 2005
    Beiträge
    423

    Standard C++ viederhohltes Erben

    Hallo,

    wenn ich beispielsweise folgende Klassenvererbungsstruktur habe:
    Code:
                                          A
                                         /  \
                                        B    C
                                         \  /
                                          D
    B und C erben von A und D erbt von B und C.

    Wenn ich in der Klasse A eine Variable und eine Methode definiert habe, kann ich ja die wiederholte Vererbung dieser über B und C auf D durch das virtuelle Erben verhindern. Dann habe ich ja auf D nur ein Objekt von A statt, zwei die ich über B und C bekommen hätte.

    Kann man dann sagen die Klasse ist statisch innerhalb meiner Klassenvererbungsstruktur?

  2. #2
    Mitglied Avatar von Jodocus_
    Registriert seit
    Aug 2010
    Ort
    Groß Wasserland
    Beiträge
    338

    Standard Re: C++ viederhohltes Erben

    >> Kann man dann sagen die Klasse ist statisch innerhalb meiner Klassenvererbungsstruktur?

    Was meinst du damit? In C++ gibt es nichts, was man als "statische Klasse" bezeichnen könnte. Nur statische Variablen, ~ Membervariablen und ~ Memberfunktionen.

  3. #3
    Bin mit Glied

    (Threadstarter)

    Avatar von sscherma
    Registriert seit
    Jan 2005
    Beiträge
    423

    Standard Re: C++ viederhohltes Erben

    Im Nachhinein betrachtet ist es völliger Quatsch was ich da von wegen statisch geschrieben habe. Es soll zwar keine dummen Fragen geben, aber die war schon gar kein schlechter versuch von mir.

  4. #4
    Mitglied Avatar von Jodocus_
    Registriert seit
    Aug 2010
    Ort
    Groß Wasserland
    Beiträge
    338

    Standard Re: C++ viederhohltes Erben

    Hier noch eine Standardpredigt: Hüte dich vor der Mehrfachvererbung. In vielen Sprachen existiert sie nicht und designtechnisch bringt sie viele Nachteile (Diamond of Death etc.) Es ist eines der wenigen Sprachfeatures in C++, die man selten bis nie benutzen sollte (besonders Sachen wie virtuelle Vererbung). Wie auch immer, es gibt dennoch interessante Einsatzmöglichkeiten, wenn man z.B. von mehreren Klassentemplates erbt (Stichwort: Policy-Pattern).

  5. #5
    Bin mit Glied

    (Threadstarter)

    Avatar von sscherma
    Registriert seit
    Jan 2005
    Beiträge
    423

    Standard Re: C++ viederhohltes Erben

    Ist angekommen, Danke.

  6. #6
    (Threadentarter) Avatar von zilluss
    Registriert seit
    Aug 2007
    Beiträge
    1.059

    Standard Re: C++ viederhohltes Erben

    Ich programmiere momentan zwar nicht in C++ aber durch meine Erfahrungen in "bourgeoisen" Sprachen wie C# und Java würde ich in C++ mittlerweile sogar eher dazu tendieren Mehrfachvererbung verwenden als früher.

    Aber: Höchstens eine der geerbten Klassen darf Implementierungen enthalten, die anderen Klassen sind reine Interface Klassen mit pure virtual methods. Wenn man die Namespaces klar trennt und die Klassenhirarchien flach hält sollte man keine Probleme erwarten.

  7.  
     
     

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •