Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

Cách dùng placement new trong C++


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