Das nächste Problem, das sich uns stellt, ist das der Reihenfolge der Konstruktion. Die Antwort darauf merkt man sich relativ leicht: "C++ Klassen ehren ihre Eltern, indem sie deren Konstruktor vor ihren eigenen aufrufen". Der Konstruktor der Basisklasse wird vor dem der abgeleiteten Klasse aufgerufen. Das macht Sinn, da es sicherstellt, daß die Basisklasse fertig konstruiert ist, wenn der Konstruktor für die abgeleitete Klasse abgearbeitet wird. Das erlaubt Dir, einige der Daten der Basisklasse während der Konstruktion der abgeleiteten Klasse schon zu verwenden. In unserem Fall wird der Teil von Sedan, der ein Vehikel ist, zuerst konstruiert, dann werden die lokalen Elemente des Objektes Sedan konstruiert, schlußendlich sind alle Elementvariablen initialisiert. Deshalb können wir die Methode Initialisiere() in Zeile 59 auskommentieren. Wir benötigen sie nicht mehr.
Auch das Objekt Sattelschlepper wird in Zeile 66 in derselben Weise konstruiert. Der Konstruktor für die Basisklasse wird abgearbeitet, dann der Konstruktor für die abgeleitete Klasse. Jetzt ist das Objekt komplett definiert und wir können es mit den Standardwerten in allen Elementvariablen verwenden. Die Zeilen 68 und 69 brauchen wir also nicht mehr.
Der Rest des Programmes sollte, die Reihenfolge bei der Abarbeitung der Destruktoren ausgenommen, keine Probleme aufwerfen.
Copyright © 1997, 1998, 2001-2006 Heinz Tschabitscher - Letzte Änderung 15. Dezember 2005
Heinz Tschabitscher - | Datenschutz | Impressum - Kommentare, Kritik, Anregungen, Bedeutungsschwangeres?