Die C++ Zeiger Regel

Die Regel ist folgende. Ein Zeiger, der per Deklaration auf die Basisklasse zeigt, kann auf ein Objekt einer von der Basisklasse abgeleiteten Klasse zeigen, aber ein Zeiger auf eine abgeleitete Klasse kann nicht auf ein Objekt der Basisklasse oder einer anderen von der Basisklasse abgeleiteten Klasse zeigen. In unserem Programm dürfen wir also einen Zeiger auf Vehikel, die Basisklasse, deklarieren und diesen Zeiger auf Objekte der Basisklasse oder einer der abgeleiteten Klasse zeigen lassen.

Genau das tun wir im Hauptprogramm. Wir definieren einen einzelnen Zeiger, der auf die Klasse Vehikel zeigt und verwenden ihn, um auf Objekte aller Klassen zu zeigen, in derselben Reihenfolge wie in den letzten Beispielprogrammen. In jedem Fall erzeugen wir das Objekt, senden eine Nachricht an die Methode mit dem Namen Nachricht() und löschen das Objekt, bevor wir zur nächsten Klasse weitergehen. Wie Du sicher bemerkt hast, senden wir die Nachricht immer an dieselbe Methode, nämlich die Methode mit dem Namen Nachricht(), die Teil der Basisklasse Vehikel ist. Das ist der Fall, weil der Zeiger mit einer Klasse verbunden ist. Obwohl der Zeiger eigentlich auf Objekte von vier verschiedenen Klassen zeigt, verhält sich das Programm als würde er immer auf ein Objekt der Basisklasse zeigen, da der Zeiger von diesem Typ ist.

Das nächste Programm wird schließlich und endlich etwas tun, was Du in keinem C Programm oder C++ Programm in dieser Einführung gesehen hast. Wenn Du also dieses Programm kompiliert und ausgeführt hast, werden wir uns unserer ersten virtuellen Funktion widmen.

(weiter...)