2014-03-05 161 views
0
std::vector<Node>& Way::GetNodesCollection() const { 
return this->nodesCollection;} 

這是得到錯誤 如何正確初始化該「類型‘std::vector<Node>&’的引用無效初始化」。吸氣劑參考類型變量C++

+7

要麼刪除'const'預選賽或返回一個const引用('標準::矢量常量&')。 – lisyarus

回答

3

您正試圖從const方法返回非const對類成員的引用。這是不允許的,因爲它違反了const類成員函數的語義(它只能訪問常量版本this)。

要改正錯誤,要麼寫

const std::vector<Node>& Way::GetNodesCollection() const { 
    return nodesCollection; 
} 

std::vector<Node>& Way::GetNodesCollection() { 
    return nodesCollection; 
} 
0

書面,這不只是一個「吸氣劑」,因爲我可以得到引用,然後修改內容。你想另一個const修改:

const std::vector<Node>& Way::GetNodesCollection() const { 
    return this->nodesCollection; 
}