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
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP