通过引用获取std :: list

时间:2011-02-09 11:20:37

标签: c++

我在C ++中有一个Poly3D类,它有一个唯一的成员:list<Point_3>

using namespace std;

struct Poly3D
{
public:
    Poly3D(const list<Point_3> &ptList);


private:
    list<Point_3> ptList;

};

我的问题是,如何通过引用获取(在C#意义上),以便每次访问Poly3D.ptList时返回相同的副本?

2 个答案:

答案 0 :(得分:5)

如果您真的想直接访问list,那么只需编写一个通过引用返回的getter:

struct Poly3D
{
public:
    ...

    list<Point_3> &getList()
    {
        return ptList;
    }

...
};

但如果你这样做,你也可以成为list成员public

答案 1 :(得分:2)

#include <list>
using namespace std;

struct Point_3{
};

struct Poly3D
{
public:
    Poly3D(const list<Point_3> &ptList);
    list<Point_3>& GetPointList();


private:
    list<Point_3> ptList;

};

list<Point_3>& Poly3D::GetPointList(){
    return ptList;
}

int main(void){
    list<Point_3> myList;
    Poly3D myPoly(myList);
    list<Point_3>& myListRef = myPoly.GetPointList();
}