C ++ get-Methode - Rückgabe nach Wert oder Referenz
Ich habe eine sehr einfache Frage, aber leider kann ich die Antwort nicht selbst herausfinden.
Angenommen, ich habe eine Datenstruktur, die Einstellungen enthält und sich wie eine Einstellungsübersicht verhält. Ich habe einGetValue(const std::string& name)
-Methode, die den entsprechenden Wert zurückgibt.
Nun versuche ich herauszufinden, welche Art von Return-Value-Ansatz besser wäre. Das Offensichtliche ist, meine Methode so zu machen, dass sie sich wie @ verhäl
std::string GetValue(const std::string& name) const
und geben Sie eine Kopie des Objekts zurück und verlassen Sie sich in Bezug auf die Leistungsbedeutung auf RVO.
Der andere würde bedeuten, zwei Methoden zu machen
std::string& GetValue(...)
const std::string& GetValue(...) const
Das bedeutet im Allgemeinen, Code zu duplizieren oder eine dieser Routinen zweimal mit schlechten Konstanten zu verwenden.
#
QWas wäre Ihre Wahl in einer solchen Situation und warum?