Zitat von
Daepilin
extra zugriffsfunktion?
Das wäre auch eine Möglichkeit. Das würde aber (so paradox es auf den ersten Blick erscheinen mag), gegen Datenkapselung verstoßen.
Extra Zugriffsfunktionen haben die Eigenschaft, dass jeder sie aufrufen kann. Wenn die Daten aber nur an einer oder wenigen bekannten, eng mit der Klasse verbundenen Stellen gebraucht werden, dann ist diese Eigenschaft ein Nachteil.
friend-Deklarationen hingegen müssen in der Klasse selbst angegeben werden. Die Klasse entscheidet also, wer Zugriff auf ihre Daten hat. Zum Beispiel ist
ostream& operator<<(ostream& os, const Wurfverwaltung& y)
kein friend der Klasse Wurf. Braucht es auch nicht zu sein, weil dieser Operator einfach
ostream& operator<<(ostream& os, const Wurf& y)
aufrufen kann.
Üblicherweise bekommen überladene Operatoren, die keine Memberfunktionen sind, friend-Zugriff. Außer natürlich die Zugriffsfunktionen sind aus anderen Gründen schon da.