我想知道,無論是類的一個陣列成員可以在類結構立即創建:C++數組構造
class C
{
public:
C(int a) : i(a) {}
private:
int i;
};
class D
{
public:
D() : a(5, 8) {}
D(int m, int n) : a(m,n) {}
private:
C a[2];
};
據我已經一派,內構造陣列創建諸如以上在C++中不可能。或者,數組成員可以在構造函數塊內初始化,如下所示。
class D
{
public:
D() {
a[0] = 5;
a[1] = 8;
}
D(int m, int n) {
a[0] = m;
a[1] = n;
}
private:
C a[2];
};
但是,它不是一個數組創建了,而是數組賦值。數組元素由編譯器通過其默認構造函數自動創建,隨後將它們手動分配給C'tor塊內的特定值。什麼是煩人的;對於這樣的解決方法,類C必須提供默認的構造函數。
有沒有人可以幫助我創建數組成員的任何想法。我知道使用std :: vector可能是一個解決方案,但由於項目條件,我不允許使用任何標準的Boost或第三方庫。
你必須等待C++ 0x,它允許這個。 – 2009-12-22 07:40:05