Ausführungsreihenfolge von Konstruktoren von polymorphen Klassen
-
Hallo Forum.
class BasisKlasse { BasisKlasse(void){...}; }; class AbgeleiteteKlasse { AbgeleiteteKlasse(void){...}; };In welcher Reihenfolge werden die Konstruktoren der Klassen ausgeführt, wenn ich new AbgeleiteteKlasse() aufrufe?
Vielen Dank!!!!
-
So, wie es dort steht: nur AbgeleiteteKlasse (die Klasse heißt zwar "abgeleitet", aber du mußt auch angeben wovon du ableiten willst ;))
In einer regulären Anwendung: in der Reihenfolge der Deklaration (erst alle Basisklassen, dann der eigene):
class Base1 { public: Base1(); } class Base2 { public: Base2(); } class Member { public: Member(); } class Derived : public Base1,public Base2 { public: Derived(); private: Member m; } Derived*obj=new Derived();//ruft in der Reihenfolge Base1(), Base2(), Member() und Derived() auf