Beispielprogramm: ANWGER2.CPP
Das Beispielprogramm ANWGER2.CPP zeigt eine rein virtuelle Funktion. Eine reine virtuelle Funktion wird deklariert, indem wir ihr den Wert 0 zuweisen, wie in Zeile 10. Eine Klasse, die eine oder mehrere rein virtuelle Funktionen enthält, kann nicht zum Erzeugen von Objekten verwendet werden. Das stellt sicher, daß für jeden Aufruf eine Funktion verfügbar ist und keiner von der Basisklasse beantwortet werden muß, wozu sie in Ermangelung einer Funktionsimplementation auch gar nicht in der Lage ist.
Du kannst kein Objekt einer Klasse erzeugen, die eine oder mehrere rein virtuelle Funktionen beinhaltet, da eine Nachricht an eine rein virtuelle Funktion nicht behandelt werden könnte. Der Compiler stellt sicher, daß die beiden Regeln eingehalten werden. Wenn eine Klasse eine abstrakte Klasse ererbt, ohne die rein virtuelle Methode/n zu überschreiben, wird sie selbst zur abstrakten Klasse, mit der keine Objekte erzeugt werden können.
Da unser Beispiel eine abstrakte Basisklasse verwendet, ist es nicht mehr möglich, ein Objekt der Basisklasse zu verwenden, wie wir dies im vorigen Programm getan haben. Aus diesem Grund ist ein Teil des Programmes auskommentiert.
Abstrakte Klassen finden in vielen Bibliotheken und Anwendungsgerüsten Anwendung. Kompiliere das Programm und führe es aus. Verändere dann den Code ein wenig, um zu sehen, welche Fehler der Compiler ausgibt, wenn Du die Regeln, die wir für abstrakte Klassen aufgestellt haben, verletzt.
Copyright © 1997, 1998, 2001-2006 Heinz Tschabitscher - Letzte Änderung 18. Dezember 2005
Heinz Tschabitscher - | Datenschutz | Impressum - Kommentare, Kritik, Anregungen, TLC?