Getter-Methoden sind übrigens auch etwas für die Liste der Dinge die es zu vermeiden gilt...
Warum? Klar, wenn ich für ein Attribut schlichte Getter und Setter schreibe, könnte ich es gleich public machen. Aber wenn ich zum Beispiel möchte, dass ein Attribut von außen gelesen, aber nicht geschrieben werden kann? Was spricht dann gegen Getter? Oder gibts da bei C++ noch eine Möglichkeit, von der ich noch nichts weiß?
Ich sag nicht, dass Getter rein prinzipiell immer schlecht sind; insbesondere wenn es nur einen Getter oder nur einen Setter gibt, ist das manchmal schon OK so, aber allerspätestens wenn es für ein Attribut Getter und Setter gibt, sollten die Alarmglocken läuten. Wann immer du von außen auf ein Attribut einer Klasse zugreifen willst, solltest du dir auf jeden Fall erst einmal die Frage stellen, warum das Ding eigentlich in der Klasse steckt. Bei dem von dir erwähnten Getter für einen Pointer auf ein Unterobjekt wär ich jedenfalls mal sehr sehr vorsichtig...
Disclaimer: "Getter" und "Setter" sind leider etwas schwammige Begriffe, ich mein damit vor allem Methoden, die nichts anderes tun, als eine direkte Verbindung zwischen Datenmembern und der Außenwelt herzustellen. Auch sollte man erwähnen, dass OOP nur ein Programmierstil von vielen ist und man in C++ in der Regel auf verschiedenen Ebenen verschiedenen Programmierstilen folgt. Es hat imo z.B. keinen Sinn, einen Typ, dessen Instanzen Farbwerte repräsentieren, nach OOP Prinzipien zu entwerfen...