引用类型变量 c++ 的 Getters

Getters for reference type variables c++

本文关键字:Getters c++ 类型变量 引用      更新时间:2023-10-16
std::vector<Node>& Way::GetNodesCollection() const {
return this->nodesCollection;}

这收到错误"类型' std::vector<Node>& '的引用初始化无效"如何正确初始化它。

您正在尝试从 const 方法返回对类成员的非const引用。这是不允许的,因为它会违反const类成员函数的语义(它只能访问 this 的 const 版本)。

要修复您的错误,请编写

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

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

正如所写,这不仅仅是一个"getter",因为我可以获取引用然后修改内容。您需要另一个const修饰符:

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