Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

การใช้ตำแหน่งใหม่ใน C ++ คืออะไร?


โดยสังเขป ตำแหน่งใหม่ช่วยให้คุณสามารถ "สร้าง" วัตถุในหน่วยความจำที่จัดสรรให้กับตัวแปรที่กำหนดแล้ว สิ่งนี้มีประโยชน์สำหรับการปรับให้เหมาะสม เนื่องจากจะเร็วกว่าที่จะไม่จัดสรรและนำหน่วยความจำเดิมกลับมาใช้ใหม่ซึ่งถูกกำหนดไว้แล้ว สามารถใช้ได้ดังนี้ −

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