Freigeben über


Friend-Funktionen

Eine friend-Funktion ist eine Funktion, die kein Member einer Klasse ist, hat jedoch den Zugriff auf private und geschützte Member der Klasse.Friend-Funktionen nicht als Klassenmember betrachtet. Externe Funktionen des sind sie normal, die angegebene spezielle Zugriffsprivilege sind.Freunde sind nicht im Bereich der Klasse, und sie werden nicht mit der ausgewählten Member aufgerufen (.-Operatoren und –>), sofern sie keine Member einer anderen Klasse sind.Eine friend-Funktion wird von der Klasse deklariert, mit denen der Zugriff gewährt werden soll.Die friend Deklaration kann überall in die Klassendeklaration eingefügt werden.Sie ist nicht durch die Schlüsselwörter Zugriffssteuerung beeinflusst.

Im folgenden Beispiel wird eine Point-Klasse und einer Friend-Funktion, ChangePrivatean.Die friend-Funktion verfügt über Zugriff auf den privaten Datenmember des Point-Objekts, das er als Parameter empfängt.

Beispiel

// friend_functions.cpp
// compile with: /EHsc
#include <iostream>

using namespace std;
class Point
{
    friend void ChangePrivate( Point & );
public:
    Point( void ) : m_i(0) {}
    void PrintPrivate( void ){cout << m_i << endl; }

private:
    int m_i;
};

void ChangePrivate ( Point &i ) { i.m_i++; }

int main()
{
   Point sPoint;
   sPoint.PrintPrivate();
   ChangePrivate(sPoint);
   sPoint.PrintPrivate();
}
  

Siehe auch

Referenz

friend (C++)