โดยสังเขป ตำแหน่งใหม่ช่วยให้คุณสามารถ "สร้าง" วัตถุในหน่วยความจำที่จัดสรรให้กับตัวแปรที่กำหนดแล้ว สิ่งนี้มีประโยชน์สำหรับการปรับให้เหมาะสม เนื่องจากจะเร็วกว่าที่จะไม่จัดสรรและนำหน่วยความจำเดิมกลับมาใช้ใหม่ซึ่งถูกกำหนดไว้แล้ว สามารถใช้ได้ดังนี้ −
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 = 0x60ff18
หลังจากใช้ตำแหน่งใหม่ -
a = 10 m = 0x60ff18 &a = 0x60ff18