共用方式為


新的運作方式

配置運算式 — 包含運算式 運算子,可以執行三個操作:

  • 找出並保留儲存區或多個要配置的物件。 這個階段完成時,正確的儲存量的配置,但是還不物件。

  • 初始化的物件。 一旦完成初始化,足夠的資訊是存在的物件配置的儲存體。

  • 傳回的指標,指標型別的物件衍生自新的型別名稱型別名稱。 程式會使用 this 指標來存取新配置的物件。

運算子叫用的函式operator new。 任何型別的陣列,以及物件的類別, struct,或等位型別、 全域函式, :: 運算子 new,稱為 「 配置存放區。 類別型別物件可以定義自己operator new以每個類別為基礎的靜態成員函式。

當編譯器遇到配置的物件型別的運算子type,就會發出呼叫type**:: new 運算子 (sizeof (type))** 或,如果使用者定義的無operator new定義時, :: new 運算子 (sizeof (type))。     因此, 運算子可以配置給物件的正確的記憶體數量。

注意事項注意事項

引數為operator new屬於型別 size_t。這種類型被定義在行銷。H,MALLOC。H,記憶體。H,搜尋。H,STDDEF。H,STDIO。H,STDLIB。H,字串。H 和時間。H.

文法中的選項可讓規格的位置 (請參閱的文法 new 運算子)。 位置參數只能用於使用者定義的實作operator new。 它允許額外的資訊傳遞至operator new。 已有的運算式位置欄位,例如T *TObject = new ( 0x0040 ) T;會轉譯為T *TObject = T::operator new( sizeof( T ), 0x0040 );有類別 t 成員運算子新,否則以T *TObject = ::operator new( sizeof( T ), 0x0040 );。

原本位置欄位,就是允許使用者指定的位址配置的硬體相關物件。

注意事項注意事項

雖然前面的範例顯示只有一個引數,在位置欄位,沒有任何限制在幾個多餘的引數可以傳遞至operator new這種方式。

即使operator new巳經定義了類別型別的全域運算子可供使用這個範例的形式:

T *TObject =::new TObject;

範圍解析運算子 (::) 會強制使用的全域運算子。

請參閱

參考

新運算子 (C++)