std::vector<Node>& Way::GetNodesCollection() const {
return this->nodesCollection;}
这样会收到错误“类型为'std::vector<Node>&
'的引用无效初始化”
如何正确初始化。
答案 0 :(得分:3)
您正尝试从const
方法向类成员返回非const
引用。这是不允许的,因为它会违反const
类成员函数的语义(它只能访问this
的const版本。)
要修复错误,请写
const std::vector<Node>& Way::GetNodesCollection() const {
return nodesCollection;
}
或
std::vector<Node>& Way::GetNodesCollection() {
return nodesCollection;
}
答案 1 :(得分:0)
如上所述,这不仅仅是一个“getter”,因为我可以获得引用然后修改内容。您想要另一个const
修饰符:
const std::vector<Node>& Way::GetNodesCollection() const {
return this->nodesCollection;
}