Unsere Datenschutzrichtlinie wird in Kürze aktualisiert. Bitte sehen Sie sich die Vorschau an.

C++ Grundkurs

Aufrufreihenfolge Destruktoren

Testen Sie unsere 2016 Kurse

10 Tage kostenlos!

Jetzt testen Alle Abonnements anzeigen
C++ führt eine Kette von Destruktoren aus, sobald ein Objekt einer abgeleiteten Klasse zerstört wird. Dies garantiert die Zerstörung sämtlicher Attribute der Ableitungskette.
02:19

Transkript

In dieser Lektion möchte ich Ihnen "Aufrufreihenfolgen von Destruktor in Ableitungshierarchien" vorstellen. Immer wenn Sie ein Objekt destruieren, das Mitglied einer "Ableitungskette" ist, wird einen Anzahl von "Destruktoren" ausgeführt. Dadurch gewährleistet, dass jedes Attribut der Ableitungskette zerstört wird. Die Abarbeitung einer Kette von Destruktoren beginnt mit der Klasse, von der nicht mehr weiter abgeleitet wird und endet mit der Basisklasse. Das zeige ich am besten an einem Beispiel. Ich habe hier die Klasse A, B und C. B leitet sich von A ab. C leitet sich von B ab. Wenn ich jetzt ein Objekt vom Typ C instanziiere, werden die Konstruktoren in der Reihenfolge A, B, C ausgeführt. Also A, B, C. Hingegen dann, wenn ich das Objekt vom Typ C destruiere, wird zuerst C ausgeführt, dann B und dann A. Das Ganze zeige ich Ihnen jetzt in der Anwendung. Ich habe hier drei Klassen A, B, C. C leitet sich öffentlich von B ab. B leitet sich öffentlich von A ab. Jede Klasse gibt einem Konstruktor ihren Namen aus, vom Konstruktor A in diesem Fall und gibt einem Destruktor auch ihren Namen aus, in diesem Fall in der Form "Destruktor A". Das macht natürlich auch B und C. So kann ich jetzt schön Ihnen zeigen, welche Reihenfolge die Konstruktoren und Destruktoren aufgeführt werden. Zuerst zum Hauptprogramm. Im Hauptprogramm erzeuge ich ein c, also ein Objekt vom Typ C. Hier einmal dynamisch, also auf dem "Heap" und hier einmal statisch, also automatisch innerhalb dieses Gültigkeitsbereiches. Egal wie ich es mache, die Konstruktoren und Destruktoren werden immer in der gleichen Reihenfolge ausgeführt. Erst mal was bewirkt dieser Aufruf hier? Der bewirkt, dass zuerst A, B und C konstruiert wird und destruiert wird das Objekt C in der genau umkehrten Reihenfolge, C, B, A. Das Gleiche tritt im statischen Fall auf. Zuerst wird A, B und C konstruiert und destruiert wird C, B, A. In dieser Lektion habe ich Ihnen gezeigt, in welcher Reihenfolge "Konstruktoren" und "Destruktoren" in Ableitungshierarchien aufgerufen werden. Sie haben insbesondere gesehen, dass Konstruktoren von der Basisklasse zur möglichst weit abgeleiteten Klassen ausgeführt werden. Sie haben auch gesehen, dass die Aufrufreihenfolge mit Destruktoren genau anders herum ist.

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!