C++ 引用类型变量c++; std::vector&Way::getNodeCollection()常量{ 返回此->节点集合;}

C++ 引用类型变量c++; std::vector&Way::getNodeCollection()常量{ 返回此->节点集合;},c++,C++,这是获取错误“类型为“std::vector&”的引用初始化无效” 如何正确初始化。您试图从const方法返回对类成员的非const引用。这是不允许的,因为它会违反const类成员函数(只能访问This的const版本)的语义 要修复错误,请编写 std::vector<Node>& Way::GetNodesCollection() const { return this->nodesCollection;} 常量std::vector&Way::getNodeCo

这是获取错误“类型为“
std::vector&
”的引用初始化无效”
如何正确初始化。

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

要修复错误,请编写

std::vector<Node>& Way::GetNodesCollection() const {
return this->nodesCollection;}
常量std::vector&Way::getNodeCollection()常量{ 返回节点集合; } 或

std::vector&Way::getNodeCollection(){
返回节点集合;
}

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

要修复错误,请编写

std::vector<Node>& Way::GetNodesCollection() const {
return this->nodesCollection;}
常量std::vector&Way::getNodeCollection()常量{ 返回节点集合; } 或

std::vector&Way::getNodeCollection(){
返回节点集合;
}

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

要修复错误,请编写

std::vector<Node>& Way::GetNodesCollection() const {
return this->nodesCollection;}
常量std::vector&Way::getNodeCollection()常量{ 返回节点集合; } 或

std::vector&Way::getNodeCollection(){
返回节点集合;
}

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

要修复错误,请编写

std::vector<Node>& Way::GetNodesCollection() const {
return this->nodesCollection;}
常量std::vector&Way::getNodeCollection()常量{ 返回节点集合; } 或

std::vector&Way::getNodeCollection(){
返回节点集合;
}

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

std::vector<Node>& Way::GetNodesCollection() {
    return nodesCollection;
}
常量std::vector&Way::getNodeCollection()常量{ 返回此->节点集合; }
如前所述,这不仅仅是一个“getter”,因为我可以获取引用,然后修改内容。您需要另一个
const
修饰符:

std::vector<Node>& Way::GetNodesCollection() {
    return nodesCollection;
}
常量std::vector&Way::getNodeCollection()常量{ 返回此->节点集合; }
如前所述,这不仅仅是一个“getter”,因为我可以获取引用,然后修改内容。您需要另一个
const
修饰符:

std::vector<Node>& Way::GetNodesCollection() {
    return nodesCollection;
}
常量std::vector&Way::getNodeCollection()常量{ 返回此->节点集合; }
如前所述,这不仅仅是一个“getter”,因为我可以获取引用,然后修改内容。您需要另一个
const
修饰符:

std::vector<Node>& Way::GetNodesCollection() {
    return nodesCollection;
}
常量std::vector&Way::getNodeCollection()常量{ 返回此->节点集合; }
删除
const
限定符或返回常量引用(
std::vector const&
)。删除
const
限定符或返回常量引用(
std::vector const&
)。删除
const
限定符或返回常量引用(
std::vector const&
)。删除
const
限定符或返回const引用(
std::vector const&
)。