在Rectangle里是一个private的vector变量和一个方法返回vector出来
private:
std::vector<Point2D> m_points_contained;
public:
const std::vector<Point2D>& points_contained() const { return m_points_contained; }
我想在另一个文件里通过方法返回出来的vector对他进行修改,但是push_back以后原来的m_points_contained没有更改
std::vector<Point2D> allP = points_contained();
allP.push_back(p);
如果
std::vector<Point2D>& allP = points_contained();
报错 Binding reference of type 'const vector<...>' to value of type 'vector<...>' changes address space
如果
points_contained().push_back(p);
报错 No matching member function for call to 'push_back'