是否有可能有一个std :: list作为C++结构的成员?
问题描述:
我会用一个例子来描述我的问题。我有结构三角:是否有可能有一个std :: list作为C++结构的成员?
struct Triangle {
int perimeter;
double area;
list <mystruct> sides;
};
其中MYSTRUCT是:
struct mystruct {
int length;
}
这可能吗?有没有可能出现的问题?
答
是的,这是可能的。实际上它是一个composition。您可以使用它像这样:
mystruct s;
s.length = 10;
Triangle t;
t.sides.push_back(s);
对象组合是简单对象或数据类型 成更复杂的组合方式。
答
没问题。
std::list<>
写得很好,可以复制(甚至是可移动的),默认可构造的等等,所以你可以在struct
中使用它,不用担心任何事情。
答
几乎所有用途的struct
和class
之间的唯一显着差异是默认访问说明符。