Bitte beachten Sie folgenden Sudo-Code.Kann ich eine ausgewählte Referenz in C++ zurückgeben?
Object& getObjectDependingOnMonth(std::string& month, std::vector<Object>& vec) {
if (month == "January") {
auto& ref = vec.at(1);
} else {
auto& ref = vec.at(2);
}
ref.do_something(); // error because ref is local in block above.
return ref; // error because ref is local in block above.
}
Der obige Code zeigt, was ich tun möchte. Ich möchte eine Referenz des Elementes eines Vektors bekommen. Es hängt von einer Eingabe, einem Monat ab. Ich möchte seine Referenz außerhalb der Funktion, getObjectDependingOnMonth (...) verwenden. Ich konnte jedoch nicht darüber nachdenken, wie man eine gültige Referenz eines ausgewählten Elements im Vektor ohne doppelten Code in Blöcken zurückgibt. auto & ref = ... ist in einem if-Block definiert. Die Ref sind außerhalb ihres Blocks ungültig.
Kann ich eine ausgewählte Referenz von einer Funktion zurückgeben? Vielen Dank.
Enthält diese kompiliert als 'ref' –
@BeyelerStudios aus dem Geltungsbereich: Ich für meinen Fehler bedaure. Ich ändere std :: vector