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
    

Anmelden zum Antworten