new 關鍵字相關

2022-09-13 03:39:15 字數 682 閱讀 2030

初始化動態分配的陣列

動態分配陣列時,如果陣列元素具有類型別,將使用該類的預設建構函式(c++primer第

2.3.4 節)實現初始化;如果陣列元素是內建型別,則無初始化:

string *psa = new string[10]; // array of 10 empty strings

int *pia = new int[10]; // array of 10 uninitialized ints

這兩個 new 表示式都分配了含有 10 個物件的陣列。其中第乙個陣列是 string

型別,分配了儲存物件的記憶體空間後,將呼叫 string 型別的預設建構函式依次

初始化陣列中的每個元素。第二個陣列則具有內建型別的元素,分配了儲存 10

個 int 物件的記憶體空間,但這些元素沒有初始化。

也可使用跟在陣列長度後面的一對空圓括號,對陣列元素做值初始化(第

3.3.1 節):

int *pia2 = new int[10] (); // array of 10 uninitialized ints

圓括號要求編譯器對陣列做值初始化,在本例中即把陣列元素都設定為0。

對於動態分配的陣列,其元素只能初始化為元素型別的預設值,

而不能像陣列變數一樣,用初始化列表為陣列元素提供各不相

同的初值。

new關鍵字 this關鍵字 base關鍵字

使用new,所做的三件事 1.類是引用物件,引用物件是在堆中開闢空間 在堆中開闢空間 2.在開闢的堆空間中建立物件 3.呼叫物件的構建函式 4.隱藏父類成員 子類的成員可以與隱藏從父類繼承的成員,類似於重寫。public new void sayhello this關鍵字的使用 1.代表當前類的物件...

手寫 new 關鍵字

function mynew func,args 新物件原型指向建構函式原型物件 obj.proto func.prototype 將建構函式的this指向新物件 let result func.obj,args 根據返回值判斷 return result instanceof object res...

new 關鍵字的理解

當我們例項化乙個物件時,會遇到乙個有意思的問題 function person name this.name name var p new person zhangsan console.log p 建構函式並沒有返回值,為什麼可以將person例項化呢?這是因為new的原因。new關鍵字有兩個作用...