Sind mehrere geerbte Konstruktoren mehrfach aufgerufen?

Sind mehrere geerbte Konstruktoren mehrfach aufgerufen? Und in welcher Reihenfolge werden die Konstruktoren aufgerufen? Dies tut hängt von der Reihenfolge, in der vererbungsliste?

Hier ist ein Beispiel (es ist nur, dass die situation klar, keine real-life-Beispiel).

class Base {};
class DerivedBaseOne : public Base {};
class DerivedBaseTwo : public Base {};
class Derived : public DerivedBaseTwo, public DerivedBaseOne 
{};

//somewhere in the code, is Base() called two times here?
Derived * foo = new Derived();

Ist die Base() Konstruktor zweimal aufgerufen? Und in welcher Reihenfolge werden die Konstruktoren aufgerufen? Basis ersten? Oder DerivedBaseOne() oder DerivedBaseTwo() ersten?

InformationsquelleAutor blubberbernd | 2011-09-13
Schreibe einen Kommentar