Vererbung und Konstruktoren



  • Moin,
    also wie ist das? werden Konstruktoren mitvererbt oder nicht? Oder was wird generell mitvererbt und was nicht? Kann man vererbung bei solchen Sachen erzwingen?

    *Verwirrung*



  • AFAIK werden Konstruktoren nicht mitvererbt- das hätte doch auch wenig Sinn.



  • Genau, welchen Sinn sollte es auch machen das Elternobjekt zu initialisieren, braucht doch kein Mensch 😃

    Grundsätzlich wird alles vererbt, auch die Konstruktoren. Selbige werden von den Konstruktoren des Erben auch implizit aufgerufen, wenn Du dies nicht explizit tust. Das merkst Du z.B. sehr schnell wenn Du eine Klasse schreibst, deren einziger Konstruktor einen oder mehr Parameter erwartet, Du von dieser Klasse ableitest, und Du der Ableitung garkeinen Konstruktor spendierst.



  • LordJaxom schrieb:

    Grundsätzlich wird alles vererbt, auch die Konstruktoren.

    Ähm, nein.

    struct foo { foo() { } };
    struct bar : foo { bar(int) { } };
    
    int main()
    {
      bar barf;
    }
    

    Es muss immer ein Basisklassen-Konstruktor aufgerufen werden, dass heißt aber noch lange nicht dass diese geerbt werden.



  • EDIT: Schwachsinn gelöscht


Anmelden zum Antworten