Pointer als Rückgabewert von Funktionen (2/2)

Rückgabe eines Zeigers auf ein Element einer zugriffsbeschränkten Klasse

Man sollte niemals einen Zeiger zurückgeben, der auf ein Element einer Klasse zeigt, das zugriffsbeschränkt (also private oder protected) ist. Das Problem ist dann nämlich, daß die Zugriffsbeschränkung verloren geht.
  class T {
  protected:
    U prvmb;
  public:
    U& rueckgabe_eines_protected_Elements() { return prvmb; }
  };

  T t;

  cout << t.prvmb.geheimes_Eelement; // nicht moeglich. prvmb ist protected!
  U spy = T.rueckgabe_eines_proteced_Elements();
  cout << spy.geheimes_Element;      // jetzt kann man darauf zugreifen
Ist ein Element zugriffsbeschränkt gibt es keinen Grund eine Referent auf dieses Objekt nach außen zurückzugeben. Das angegebene Beispiel ist also zu vermeiden.