我在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
时返回相同的副本?
答案 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();
}