Grenzen der Freundschaft (2/2)

Das folgende Beispiel soll zeigen, daß die Freundschaftsbeziehung via friend nicht transitiv ist, d.h. eine Freundschaftsbeziehung wird nicht einfach auf andere Klassen übertragen.

Beispiel:

  class X {
      friend class Z;
      //...
  }

  class Y {
      friend class X;
      // ...
  }

Die Elementfunktionen der Klasse Z können in diesem kurzen Beispiel zwar direkt auf die non-public-Elemente der Klasse X zugreifen, sowie analog die der Klasse X auf die der Klasse Y. Das heißt aber nicht, daß die Funktionen der Klasse Z dadurch auf non-public-Elemente der Klasse Y zugreifen dürften.
Merken kann man sich diesen Sachverhalt wieder recht anschaulich: "Der Freund meines Freundes ist nicht automatisch mein Freund".