friend: Freunde haben freien Zutritt

Man kann innerhalb einer Klasse eine Funktion oder eine andere Klasse deklarieren, und mit dem Schlüsselwort friend dabei zulassen, daß die friend-Funktion beziehungsweise alle Elementfunktionen der friend-Klasse freien Zugriff auf alle Elemente der aktuellen Klasse haben, gleichgültig ob die Elemente im private:-, protected:- oder public:-Teil stehen.

Ob die friend-Deklaration selbst im private:-, protected:- oder public:-Bereich steht, ist belanglos; sie selbst gilt immer als public.

Beispiel für eine friend-Funktion:

class A
{
  friend void meinKumpel( A &objekt );

protected:

  int i;

public:
  //...
};


void meinKumpel( A &objekt )
{
  // obwohl A::i protected ist, ist hier (dank friend)
  // ein Zugriff zulässig:
  objekt.i = 25;
}

int main( int nargs, char **args )
{
  A Variable;

  meinKumpel( Variable );
}



Unterabschnitte

AnyWare@Wachtler.de