Ein einfacher Zeiger auf die Elternklasse

Beispielprogramm: VIRTL5.CPP

Im Beispielprogramm VIRTL5.CPP verwenden wir schon fast eine virtuelle Methode. Habe noch ein ganz wenig Geduld, wir sind beinahe so weit.

Dieses Beispielprogramm ist eine weiter Variante unseres Programmes ohne das Schlüsselwort virtual, aber mit einem komplett veränderten Hauptprogramm. Hier definieren wir nur einen einzigen Zeiger auf eine Klasse, und diese Klasse ist die Basisklasse unserer Klassenhierarchie. Wir verwenden den Zeiger mit jeder der vier Klassen und achten auf die Ausgabe der Methode Nachricht().

Ein kurzer Exkurs soll uns erklären, warum ein Zeiger, den wir als auf eine spezifische Klasse zeigend deklariert haben, plötzlich auf eine andere zeigen kann. Wenn wir von einem Vehikel sprechen (zugegeben: wir tun das nicht allzu oft), kann es sich dabei um ein Auto, einen Lastwagen, ein Motorrad oder alles mögliche, das der Fortbewegung dient, handeln. Wir beziehen uns auf eine sehr umfassende Form eines Objektes. Wenn wir aber von einem Auto sprechen, meinen wir eben keinen Lastwagen, kein Motorrad oder irgendetwas anderes, diese Möglichkeiten sind ausgeschlossen. Der umfassendere Begriff des Vehikels kann sich also auf viele Arten von Fortbewegungsmitteln beziehen, der spezifischere Terminus des Autos bezieht sich nur auf eine Art von Vehikel, nämlich ein Auto.

Denselben Gedankengang können wir nun auf C++ übertragen. Wenn wir demnach eine Zeiger auf ein Vehikel haben, kann dieser Zeiger auf alle die spezielleren Objekte zeigen, und das ist in der Tat erlaubt in C++. Ebenso können wir aber einen Zeiger auf ein Auto nicht benutzen, um auf eine der anderen Klassen zu zeigen, auch nicht auf die Klasse Vehikel, da der Zeiger der Klasse Auto zu spezifisch und eingeschränkt ist.

(weiter...)