当前位置:  开发笔记 > 编程语言 > 正文

使用C++中的指针和引用时出现问题

如何解决《使用C++中的指针和引用时出现问题》经验,为你挑选了1个好方法。

我有一个PolygonList和一个Polygon类型,它们是std :: Points列表或点列表.

class Point {
    public:
        int x, y;
        Point(int x1, int y1)
        {
            x = x1;
            y = y1;
        }
};

typedef std::list Polygon;
typedef std::list PolygonList;


// List of all our polygons
PolygonList polygonList;

但是,我对引用变量和指针感到困惑.

例如,我希望能够在我的polygonList中引用第一个Polygon,并将一个新的Point推送到它.

所以我试图将polygonList的前面设置为一个名为currentPolygon的Polygon,如下所示:

 Polygon currentPolygon = polygonList.front();
 currentPolygon.push_front(somePoint);

现在,我可以为currentPolygon添加点,但这些更改最终没有反映在polygonList中的同一个多边形中.是currentPolygon只是一个副本在polygonList前面的多边形的?当我稍后迭代polygonList时,我没有显示我添加到currentPolygon的所有点.

如果我这样做,它的工作原理:

polygonList.front().push_front(somePoint);

为什么这些不相同,我如何创建物理前多边形的引用而不是它的副本?



1> shoosh..:

像这样:

 Polygon ¤tPolygon = polygonList.front();
 currentPolygon.push_front(somePoint);

名称前面的&符号表示这是一个参考.

推荐阅读
mobiledu2402851373
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有