我會用一個例子來描述我的問題。我有結構三角:是否有可能有一個std :: list作爲C++結構的成員?
struct Triangle {
int perimeter;
double area;
list <mystruct> sides;
};
其中MYSTRUCT是:
struct mystruct {
int length;
}
這可能嗎?有沒有可能出現的問題?
我會用一個例子來描述我的問題。我有結構三角:是否有可能有一個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
之間的唯一顯着差異是默認訪問說明符。