動態分配陣列時,如果陣列元素具有類型別,將使用該類的預設建構函式實現初始化; 不能像陣列變數一樣,用初始化列表為陣列元素提供各不相同的初值。
如果陣列元素是內建型別,則無初始化。也可以使用跟在陣列長度後面的一對空圓括號,對陣列元素做值初始化。圓括號要求編譯器對陣列做值初始化。
如果我們在自由儲存區中建立的陣列儲存了內建型別的const物件,則必須為這個陣列提供初始化;
因為陣列元素都是const物件,無法賦值。實現這個要求的唯一方法是對陣列做值初始化。
const int *pci_ok = new const int[100] ();
c++允許定義類型別的const陣列,但該類型別必須提供預設建構函式:
在這裡,將使用string類的預設建構函式初始化陣列元素。
之所以要動態分配陣列,往往是由於編譯時並不知道陣列的長度。
size_t n = get_size();
int *p = new int[n];
for(int* q = p; q != p+n; +=q )}
計算陣列長度,然後建立和處理該陣列。
然後迴圈初始化。
new動態分配和初始化物件
1,自由空間分配的記憶體是無名的 2,new無法為其分配的物件命名,而是返回乙個指向該物件的指標 3,預設情況,動態分配的物件是預設初始化的,所以內建型別或組合型別的物件值是未定義的,而類型別物件將用預設建構函式進行初始化 string ps new string 初始化為空string int p...
陣列 初始化 只含動態初始化 靜態初始化
首先j a中此處只講靜態初始化 動態初始化 靜態初始化就是提前在陣列中設定好了陣列內容,此內容不做改動,該多長已經在設定內容的時候已經決定 動態初始化就是僅限於new及確定陣列大小長度,裡面的陣列內容沒有,可自由進行填寫,也包含了靜態初始化的內容 示例 package 陣列 public class...
動態分配陣列
注意,刪除操作不會刪除該指標 它刪除指標所指向的記憶體!動態分配陣列 動態陣列的宣告讓我們執行程式時選擇自己的大小。動態分配陣列,我們使用新的和刪除陣列形式 通常稱為新的 和 刪除 123 4int nsize 12 int pnarray new int nsize note nsize does...