Friend-Funktionen (Freunde einer Klasse)
Das objektorientierte Programmieren basiert unter anderem auf dem Konzept
der Datenkapselung (encapsulation), durch welches der Zugriff auf
bestimmte Dinge bzw. Objekte eingeschränkt wird. Ziel dabei ist es,
den Zugriff auf das Objekt nur über wohldefinierte Schnittstellen
zu erlauben, daß also insbesondere für "Außenstehende"
kein direkter Zugriff auf die private-/protected-Elemente einer
Klasse möglich ist.
Häufig stellen diese Vorschriften, die vorrangig dem Informationsschutz
dienen, eine zu starke Einschränkung dar, d.h. man wünscht sich ab und zu,
durch Funktionen, die keine Elementfunktionen der Klasse sind,
auf Elemente zugreifen zu können, die nicht als public definiert wurden. Natürlich
soll dies nicht völlig wahllos und unkontrolliert geschehen, man möchte vielmehr
einen Einfluß darauf haben, wer -- d.h. welche Klasse -- denn nun auf die
private-Elemente zugreifen darf.
Diesem Ziel dient der sogenannte friend-Mechanismus (Freund).
Das dabei auftretende Schlüsselwort friend nimmt in C++ eine
immens wichtige Rolle ein, wie wir im folgenden noch sehen werden.
Der Friend-Abschnitt behandelt folgende Themen: