C++ 中的新置運算子


在本節中,我們將瞭解 C++ 中的新置運算子。此新置運算子是 new 運算子的另一種形式。普通的 new 運算子執行兩件事。它分配記憶體,然後在分配的記憶體中構造物件。

new 運算子在堆部分分配記憶體,並在其中構造物件。但對於新置 new 運算子,它在給定的地址構造物件。要釋放記憶體,如果記憶體是使用 new 運算子分配的,我們可以用 delete 關鍵字。但對於 新置 new 沒有 新置 delete 功能。

簡而言之,新置 new 允許你在已分配給給定變數的記憶體上“構造”一個物件。由於不必重新分配和重複使用已分配給它的相同記憶體,這有助於最佳化,速度更快。它可以用作以下用法

new (address) (type) initializer

我們可以指定一個地址,以便在其上構造給定型別的物件。例如。

示例程式碼

 即時演示

#include<iostream>
using namespace std;
int main() {
   int a = 5;
   cout << "a = " << a << endl;
   cout << "&a = " << &a << endl;
   // Placement new changes the value of X to 100
   int *m = new (&a) int(10);
   cout << "\nAfter using placement new:" << endl;
   cout << "a = " << a << endl;
   cout << "m = " << m << endl;
   cout << "&a = " << &a << endl;
   return 0;
}

輸出

a = 5
&a = 0x22fe34
After using placement new:
a = 10
m = 0x22fe34
&a = 0x22fe34

更新於:30-07-2019

1 千次檢視

開啟你的 職業生涯

完成課程獲得認證

開始
廣告
© . All rights reserved.