Am 14. September 2017 haben wir eine überarbeitete Fassung unserer Datenschutzrichtlinie veröffentlicht. Wenn Sie video2brain.com weiterhin nutzen, erklären Sie sich mit diesem überarbeiteten Dokument einverstanden. Bitte lesen Sie es deshalb sorgfältig durch.

C++ Grundkurs

Aufrufreihenfolge Konstruktoren

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Die Aufrufreihenfolge der einzelnen Konstruktoren definiert in C++ die Abfolge der Ausführung sämtlicher Klassenkonstruktoren.
02:26

Transkript

In dieser Lektion werde ich auf die Aufrufreihenfolge von Konstruktoren in abgeleiteten Klassen eingehen. Immer wenn Sie ein Objekt einer abgeleiteten Klasse instanziieren, wird einen Kette von Konstruktoren ausgeführt. Dadurch ist sichergestellt, dass jedes Attribut, jede Instanzvariable dieser Ableitungskette initialisiert wird. Die Abarbeitung einer Kette von Konstruktoren beginnt mit der Basisklasse und endet mit der Klasse, von der nicht mehr weiter abgeleitet werden kann. Ein Beispiel habe ich hier dargestellt. Ich habe eine Klasse *A*, von der leite ich öffentlich B ab und *C* ab. Jetzt, wenn ich *C* instanziiere, wird zuerst der Konstruktor von *A*, dann von *B* und dann von *C* ausgeführt. Das zeige ich Ihnen noch in der Anwendung. Hier habe ich die Klasse *A*, die Klasse *B* und die Klasse *C*. Ich habe Strukturen verwendet, damit ich nicht *public* schreiben muss. In jeder Klasse gibt der Konstruktor raus Constructor *A* bzw. B oder *C* und der Destruktor raus Destructor *A*, *B* oder *C*. Was mache ich konkret? Ich leite *C* von *B* und *B* von *A* ab. Jetzt zeige ich Ihnen das Programm in der Anwendung. Jetzt erzeuge ich in *C*, das ist ein Objekt, der am weitesten spezialisierten Klasse. Ich lösche es hier, weil ich die Aufrufe der Destruktoren explizit zeigen will. Dann lege ich noch einmal ein *C* an, aber diesmal nicht im freien Speicher, sondern in dem lokalen Bereich hier. Sie werden dann sehen, dass das Verhalten unabhängig davon ist, ob ich es dynamisch oder statisch anlege. Die Klasse *C* leitet sich von *B* leitet sich von *A* ab. Dementsprechend wenn ich *C* instanziiere hier, wird erst der Konstruktor von *A* aufgerufen, dann von *B* aufgerufen und dann von *C* aufgerufen. Die Destruktion geschieht genau in der gleichen Reihenfolge nur anders herum, *C B A*. Also *A B C*, *C B A*. Das Gleiche gilt für die statisch angelegte Variable *c2*. Erst wird der Konstruktor von *A*, *B* und *C* aufgerufen. Dann wird der Destruktor von *C*, *B* und *A* aufgerufen. In dieser Lektion habe ich Ihnen die Aufrufreihenfolge von Konstruktoren in Ableitungshierarchien vorgestellt. Sie haben insbesondere gesehen, dass die Aufrufe der Konstruktoren mit den Basisklassen beginnen und mit der möglichst weit abgeleiteten Klasse enden. Genau das Gegenteil gilt bei den Destruktoren. Da beginnt die Destruktion mit der am weitesten abgeleiteten Klasse und endet mit der Basisklasse.

C++ Grundkurs

Steigen Sie in die mächtige Programmiersprache C++ ein und lernen Sie dabei alle wichtigen Funktionen mit Anwendungsbeispielen kennen.

8 Std. 14 min (147 Videos)
Derzeit sind keine Feedbacks vorhanden...
 

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!