Wären alle Daten der Basisklasse in allen von dieser abgeleiteten Klassen verfügbar, wäre es für die Programmiererin eine leichte Übung, die Basisklasse zu ererben und auf alle Daten freien Zugriff zu haben. Das würde den Zugriffsschutz komplett ausschalten. Aus diesem Grund sind die Daten einer Klasse in einer von dieser abgeleiteten Klasse nicht automatisch verfügbar. Es kommt aber vor, daß Du alle Variablen in die abgeleitete Klasse übernehmen und so verwenden wills, als wären sie dort deklariert. Aus diesem Grund haben die Autoren von C++ das Schüsselwort protected erfunden.
In unserem Beispielprogramm finden wir dieses Schlüsselwort in Zeile 6, womit alle Daten der Klasse Vehikel in allen abgeleiteten Klassen zur Verfügung stehen, nicht jedoch außerhalb der Basisklasse oder einer der abgeleiteten Klassen. Wie wir schon früher festgestellt haben, sind alle Daten am Beginn einer Klasse automatisch private, wenn wir nichts angeben.
Die Variablen Raeder und Gewicht sind in der Methode mit dem Namen Initialisiere() in den Zeilen 83 bis 88 verfügbar, als wären sie als Teil der Klasse Auto selbst deklariert worden. Wir können sie verwenden, da wir sie in der Basisklasse als protected deklariert haben. Natürlich wären sie hier auch verfügbar, wenn wir sie als public deklariert hätten, dann wären sie aber auch außerhalb der beiden Klassen verfügbar und wir würden allen Zugriffsschutz verlieren. Selbstredend sind die beiden Variablen in der Basisklasse in den Zeilen 77 und 78 auch verfügbar. Jetzt können wir die Regeln für die drei Arten des Zugriffes auf Variablen und Methoden aufstellen.
Diese drei Arten des Zugriffes können auch in Strukturen verwendet werden. Der einzige Unterschied besteht darin, daß in einer Struktur alles automatisch public ist, bis wir etwas anderes festlegen.
Copyright © 1997, 1998, 2001-2006 Heinz Tschabitscher - Letzte Änderung 15. Dezember 2005
Heinz Tschabitscher - | Datenschutz | Impressum - Kommentare, Kritik, Anregungen, Bedeutungsschwangeres?