是否有可能有一个std :: list作为C++结构的成员?

是否有可能有一个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中使用它,不用担心任何事情。

几乎所有用途的structclass之间的唯一显着差异是默认访问说明符。