Kin*_*tor 2 c++ pointers reference
我有一个PolygonList和一个Polygon类型,它们是std :: Points列表或点列表.
class Point {
public:
int x, y;
Point(int x1, int y1)
{
x = x1;
y = y1;
}
};
typedef std::list<Point> Polygon;
typedef std::list<Polygon> PolygonList;
// List of all our polygons
PolygonList polygonList;
Run Code Online (Sandbox Code Playgroud)
但是,我对引用变量和指针感到困惑.
例如,我希望能够在我的polygonList中引用第一个Polygon,并将一个新的Point推送到它.
所以我试图将polygonList的前面设置为一个名为currentPolygon的Polygon,如下所示:
Polygon currentPolygon = polygonList.front();
currentPolygon.push_front(somePoint);
Run Code Online (Sandbox Code Playgroud)
现在,我可以为currentPolygon添加点,但这些更改最终没有反映在polygonList中的同一个多边形中.是currentPolygon只是一个副本在polygonList前面的多边形的?当我稍后迭代polygonList时,我没有显示我添加到currentPolygon的所有点.
如果我这样做,它的工作原理:
polygonList.front().push_front(somePoint);
Run Code Online (Sandbox Code Playgroud)
为什么这些不相同,我如何创建物理前多边形的引用而不是它的副本?
像这样:
Polygon ¤tPolygon = polygonList.front();
currentPolygon.push_front(somePoint);
Run Code Online (Sandbox Code Playgroud)
名称前面的&符号表示这是一个参考.
归档时间: |
|
查看次数: |
347 次 |
最近记录: |