In SO wurden einige Fragen zu Accessor-Methoden in C ++ gestellt, aber keine konnte meine Neugier auf das Problem befriedigen.
Ich versuche, Accessoren nach Möglichkeit zu meiden, weil ich, wie Stroustrup und andere berühmte Programmierer, eine Klasse mit vielen von ihnen als Zeichen einer schlechten OO betrachte. In C ++ kann ich in den meisten Fällen einer Klasse mehr Verantwortung hinzufügen oder das Schlüsselwort friend verwenden, um sie zu vermeiden. In einigen Fällen benötigen Sie jedoch wirklich Zugriff auf bestimmte Klassenmitglieder.
Es gibt mehrere Möglichkeiten:
1. Verwenden Sie überhaupt keine Accessoren
Wir können nur die jeweiligen Mitgliedsvariablen veröffentlichen. Dies ist ein No-Go in Java, scheint aber mit der C ++ - Community in Ordnung zu sein. Ich bin jedoch etwas besorgt über Fälle, in denen eine explizite Kopie oder ein schreibgeschützter (const) Verweis auf ein Objekt zurückgegeben werden sollte. Ist das übertrieben?
2. Verwenden Sie get / set-Methoden im Java-Stil
Ich bin mir nicht sicher, ob es überhaupt von Java stammt, aber ich meine das:
int getAmount(); // Returns the amount
void setAmount(int amount); // Sets the amount
3. Verwenden Sie objektive Get / Set-Methoden im C-Stil
Das ist ein bisschen komisch, aber anscheinend immer häufiger:
int amount(); // Returns the amount
void amount(int amount); // Sets the amount
Damit dies funktioniert, müssen Sie einen anderen Namen für Ihre Mitgliedsvariable finden. Einige Leute fügen einen Unterstrich hinzu, andere stellen "m_" voran. Ich mag es auch nicht.
Welchen Stil benutzt du und warum?