請參閱以下sudo代碼。我可以在C++中返回一個選定的參考嗎?
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.
}
上面的代碼顯示了我想要做的事情。我想獲得一個向量元素的參考。這取決於一個月的輸入。我想在函數getObjectDependingOnMonth(...)之外使用它的引用。然而,我想不出如何在矢量中返回一個選定元素的有效引用,而無需在塊中重複代碼。 auto & ref = ...在if塊中定義。裁判在裁判區外無效。
我可以從函數返回一個選定的參考嗎? 非常感謝。
這是否編譯爲'ref'超出範圍 –
@BeyelerStudios:我爲我的錯誤道歉。我改變std :: vector