Beispielprogramm: VERERB5.CPP
VERERB5.CPP ist eine weitere Variation des Themas, jetzt mit Konstruktoren, die mehr sind als die bloßen Standardkonstruktoren. Jede der Klassen hat ihren eigenen Konstruktor. Der zusätzliche Konstruktor der Klasse Vehikel in den Zeilen 12 bis 14 ist nichts Besonderes, so etwas wie all die anderen Konstruktoren, die wir in dieser Einführung schon kennengelernt haben. Wir verwenden ihn in Zeile 59 des Hauptprogrammes, wo wir das Objekt Hochrad mit zwei Werten definieren.
Der Konstruktor für die Klasse Auto ist ein bißchen anders, da wir drei Variablen übernehmen. Einer der Werte, Leute, wird in der abgeleiteten Klasse selbst verwendet, um die Elementvariable mit dem Namen Passagieranzahl zu initialisieren. Die anderen beiden Werte allerdings müssen wir irgendwie an die Basisklasse übergeben, um die Werte von Raeder und Gewicht zu initialisieren. Das erreichen wir mit einer Elementinitialisierung, wie wir in diesem Konstruktor zeigen. Der Doppelpunkt am Ende der Zeile 28 bedeutet, daß eine Liste von Elementinitialisierungen folgt. Alles, was zwischen dem Doppelpunkt und der offenen geschwungenen Klammer des Konstruktors folgt, sind Elementinitialisierungen. Die erste passiert in Zeile 29 und sieht aus wie ein Konstruktoraufruf an die Klasse Vehikel, der zwei Parameter verlangt. Genau das ist sie auch und ruft den Konstruktor der Klasse Vehikel auf, um diesen Teil des Objektes Seden (als Beispiel) zu initialisieren. So können wir kontrollieren, welcher Konstruktor der Basisklasse aufgerufen wird, wenn wir ein Objekt der abgeleiteten Klasse erzeugen.
Die nächste Elementinitialisierung in Zeile 30 funktioniert in etwa wie ein Konstruktor für eine einzelne Variable. Indem wir den Namen der Variable angeben und in Klammern einen Wert des korrekten Typs wird der Variable dieser Wert zugewiesen obwohl die Variable keine Klasse, sondern ein einfacher vordefinierter Typ ist. Diese Technik kann verwendet werden, um alle Elemente der abgeleiteten Klasse oder Teile davon zu initialisieren. Sind alle Elementinitialisierungen durchgeführt, wird der Code in den geschwungenen Klammern ausgeführt. In diesem Fall befindet sich dort kein Code. Wäre dort jedoch einer, wäre er genauso geschrieben, wie dies für alle Konstruktoren gilt.
Copyright © 1997, 1998, 2001-2006 Heinz Tschabitscher - Letzte Änderung 15. Dezember 2005
Heinz Tschabitscher - | Datenschutz | Impressum - Kommentare, Kritik, Anregungen, Bedeutungsschwangeres?