Heim >Backend-Entwicklung >C++ >Wie ist die Reihenfolge von Konstruktion und Zerstörung bei der C-Vererbung?
Reihenfolge von Aufbau und Zerstörung bei der Vererbung
Beachten Sie die folgende Klassenhierarchie:
struct A { A() { std::cout << "A() C-tor" << std::endl; } ~A() { std::cout << "~A() D-tor" << std::endl; } }; struct B : public A { B() { std::cout << "B() C-tor" << std::endl; } ~B() { std::cout << "~B() D-tor" << std::endl; } A a; };
Wenn eine Instanz von B wird erstellt (wie in int main() { B b; }), die Konstruktions- und Zerstörungsreihenfolge folgt spezifisch Regeln:
Konstruktionsreihenfolge:
Dies bedeutet den folgenden Aufruf Reihenfolge:
Vernichtungsreihenfolge:
Dies führt zu folgender Zerstörung Reihenfolge:
Daher die Baureihenfolge beginnt mit der Basisklasse, fährt mit den Mitgliedsfeldern fort und endet mit der abgeleiteten Klasse. Die Zerstörungsreihenfolge ist die Umkehrung der Baureihenfolge.
Das obige ist der detaillierte Inhalt vonWie ist die Reihenfolge von Konstruktion und Zerstörung bei der C-Vererbung?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!