我有一個類可以說aClass
由默認構造函數自動創建的數組元素?
class aClass
{
public:
int data;
aClass(): data(-1) { //default constructor
}
aClass(int x): data(x) { //int constructor
};
如果我創建像
aClass* arr=new aClass[10];
問題1磁盤陣列: 我想沒有aClass
對象被創建,因爲它僅僅是一個的聲明數組,但是在我測試的程序中看起來像arr[0]
到arr[9]
都指向一個aClass
對象,它的類由默認構造函數創建?因爲我已經測試了這個程序,結果是a[0].data=-1
一直到a[9].data=-1
。
問題2:如果使用其默認構造函數創建對象,我該如何創建一個由int構造函數創建的對象的數組?很明顯,我不能寫代碼像
aClass* arr=new aClass(2015)[10];
除了一些更高級的東西之外,所有東西都在C++中被初始化到某種程度。對於'new Type [size]',它是默認初始化。碰巧的是對基本類型,如'int'默認初始化被指定爲沒有初始化。 – chris
_「我在想沒有創建aClass對象,因爲它只是一個」數組聲明「_呃,是的...一個對象數組。 –