Computer >> Máy Tính >  >> Lập trình >> C ++

Việc sử dụng vị trí mới trong C ++ là gì?


Tóm lại, vị trí mới cho phép bạn "xây dựng" một đối tượng trên bộ nhớ đã được cấp phát cho một biến nhất định. Điều này rất hữu ích cho việc tối ưu hóa vì việc không phân bổ lại và sử dụng lại chính bộ nhớ đã được gán cho nó sẽ nhanh hơn. Nó có thể được sử dụng như sau -

new (address) (type) initializer

Chúng ta có thể chỉ định một địa chỉ mà chúng ta muốn một đối tượng mới của kiểu đã cho được xây dựng.

Ví dụ

#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;
}

Đầu ra

Điều này sẽ đưa ra kết quả -

a = 5
&a = 0x60ff18

Sau khi sử dụng vị trí mới -

a = 10
m = 0x60ff18
&a = 0x60ff18