我有两个课程,Curve 和 ChildCurve。ChildCurve 继承自 Curve。
曲线具有以下私有字段
vector<Point2*>* curvePoints;
和以下公共方法
vector<Point2*>* getCurvePoints();
ChildCurve 有一个方法可以修改这个字段,如下所示。
vector<Point2*> *pts = this->getCurvePoints();
pts->clear();
Point2 q1 = Point2(1.0, 3.0);
Point2 q2 = Point2(2.0, 4.0);
pts->push_back(&q1);
pts->push_back(&q2);
cout << qvec->at(0)->getX() << ", " << qvec->at(0)->getY() << endl;
此时,将打印正确的值。
后来,从其他类中,我尝试检索存储在向量中的点。
vector<Point2*> *curvePoints = curve->getCurvePoints();
for(int i = 0; i < curvePoints->size(); i++){
Point2* p = curvePoints->at(i);
cout << p->getX() << ", " << p->getY() << endl;
}
但是所有点的垃圾坐标都接近0,比如
2.22507e-308, 6.91993e-310
我很确定除了我在这里描述的内容之外,没有任何东西触及那个向量。有什么问题?这些值可能在哪里被破坏?