new運算子的解釋

2021-08-17 09:24:59 字數 553 閱讀 4344

new

constructor[([arguments])]

建立乙個使用者自定義的物件需要兩步:

1.通過編寫函式來定義物件型別。

2.通過new來建立物件例項。

建立乙個物件型別,需要建立乙個指定其名稱和屬性的函式;物件的屬性可以指向其他物件,看下面的例子:

當** new foo(…) 執行時,會發生以下事情:

1.乙個繼承自 foo.prototype 的新物件被建立。

2.使用指定的引數呼叫建構函式 foo ,並將 this 繫結到新建立的物件。new foo 等同於 new foo(),也就是沒有指定引數列表,foo 不帶任何引數呼叫的情況。

3.由建構函式返回的物件就是 new 表示式的結果。如果建構函式沒有顯式返回乙個物件,則使用步驟1建立的物件。(一般情況下,建構函式不返回值,但是使用者可以選擇主動返回物件,來覆蓋正常的物件建立步驟)

定位new運算子

通常,new 從堆中分配記憶體,但它還有另一種稱為 定位 placement new 運算子,它可以讓我們指定要使用的位置。可以通過這個特性來設定記憶體管 理規程,處理需要通過特定位址進行訪問的硬體或在特定位置建立物件。要使用定位 new 特性,需要包含標頭檔案 new。使用定位 new 運算子時,...

定位 new 運算子

定位 new 運算子 和普通的new 運算子在堆上隨機分配記憶體相比,定位 new 運算子可以在特定的位址位置 定位 new 運算子的具體使用例項 const int buf 512 const int n 5 char buffer buf void part9 newplace 定位new 的其...

定位new運算子

一般的new運算子負責在heap堆中找到乙個足以能夠滿足要求的記憶體塊。定位new運算子在標頭檔案中。定位new運算子直接使用傳遞給它的位址,它不負責判斷哪些記憶體單元已被使用,也不查詢未使用的記憶體塊。這將一些記憶體管理的負擔交給了程式設計師。下面用乙個簡單的程式來說明定位new的用法 inclu...