Tóm lại, placement new cho phép bạn "xây dựng" (construct) một đối tượng trên vùng nhớ đã được cấp phát cho một biến cho trước. Hữu ích cho tối ưu hóa vì nhanh hơn là không phải cấp phát lại và tái sử dụng cùng vùng nhớ.
Cú pháp: new (address) (type) initializer
Chỉ định địa chỉ muốn xây dựng đối tượng mới của kiểu cho trước.
Ví dụ
#include <iostream>
using namespace std;
int main() {
int a = 5;
cout << "a = " << a << endl;
cout << "&a = " << &a << endl;
// Placement new thay đổi giá trị tại &a thành 10
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;
}Đầu ra
a = 5 &a = 0x60ff18 After using placement new: a = 10 m = 0x60ff18 &a = 0x60ff18