Zuerst sollen die beiden neuen Schlüsselwörter private
und public
erläutert werden. Im vorherigen Kapitel
wurde das Konzept der Kapselung besprochen. Daraus resultierte, daß
Objekte ein Innen und ein Außen in dem Sinne haben, daß
sie auf einen Teil ihrer selbst nur selber zugreifen können,
während andere Bereiche von allen Programmteilen zugreifbar
sind. Damit ist eine Einteilung möglich, zum einen in von
fremden Zugriff geschützte Bereiche und zum anderen in einen
Teil, der für die Kommunikation mit anderen Programmteilen nötig
ist.
Diese Differenzierung erfolgt in C++ über die beiden
Schlüsselwörter private
und public
.
Der Teil einer Klasse, der hinter private:
steht, ist in
den Instanzen der Klasse (d.h. den Daten, die diese Klasse als Typ
haben) für andere Programmteile nicht zugreifbar, ein Zugriff
auf die dort deklarierten Elemente und Methoden ist nicht zulässig.
So würde folgendes Codefragment einen Compilerfehler erzeugen:
datum heute; heute.tag=5; // Fehler!!
Im Gegensatz dazu sind die Teile der Klasse, die hinter public:
stehen, in den jeweiligen Instanzen öffentlich zugänglich,
d.h. für andere Programmteile sichtbar und nutzbar. So könnte
man den Tag von heute
dadurch verstellen, daß man
heute.setze(Tag,Monat,Jahr)
aufruft. Das dann
immer das ganze Datum verstellt werden muß, kann durchaus
Absicht sein. Falls ein einzelnes Verstellen möglich sein soll,
müßten entsprechende Methoden implementiert werden.
Die öffentlichen und privaten Bereiche sind dabei in einer Klasse beliebig mischbar, es kann nach einem öffentlichen Bereich wieder ein privater folgen und umgekehrt.
Das Schlüsselwort private:
kann hier auch
weggelassen werden, da die Voreinstellung für class
ist, daß Elemente und Methoden privat sind. Erst nach public:
werden sie öffentlich.