C++ Friend-Funktionen
Eine Friend-Funktion einer Klasse wird außerhalb der Klasse definiert, hat aber das Recht, auf alle private und protected Mitglieder der Klasse zuzugreifen. Obwohl der Prototyp der Friend-Funktion in der Klassendefinition erscheint, ist die Friend-Funktion keine Mitgliedsfunktion.
Ein Friend kann eine Funktion sein, die als Friend-Funktion bezeichnet wird; ein Friend kann auch eine Klasse sein, die als Friend-Klasse bezeichnet wird. In diesem Fall sind die gesamte Klasse und alle ihre Mitglieder Friends.
Um eine Funktion als Friend einer Klasse zu deklarieren, müssen Sie das Schlüsselwort vor dem Funktionsprototyp in der Klassendefinition verwenden.friend, wie unten gezeigt:
class Box
{
double width;
public:
double length;
friend void printWidth( Box box );
void setWidth( double wid );
};
Um alle Mitgliedsfunktionen der Klasse ClassTwo als Friends der Klasse ClassOne zu deklarieren, müssen Sie die folgende Deklaration in die Definition der Klasse ClassOne einfügen:
friend class ClassTwo;
Bitte sehen Sie sich das folgende Programm an:
Beispiel
Wenn der obige Code kompiliert und ausgeführt wird, liefert er die folgenden Ergebnisse:
Width of box : 10Weitere Erweiterungen