勵志

勵志人生知識庫

new的使用方法

`new`是C++中用於動態記憶體分配的關鍵字,它允許開發者在運行時創建對象。以下是`new`的幾種使用方法:

創建單個對象。使用`new`創建單個對象的基本語法是`objectType* pointer = new objectType(constructorArgs);`。這會在堆上分配記憶體,並使用指定的構造函式初始化對象。例如,`int* p = new int(10);`。

創建對象數組。可以使用`new`創建對象的數組,語法為`objectType* array = new objectType[arraySize];`。例如,`int* arr = new int;`。

定位`new`。定位`new`用於在已分配的記憶體上構造對象,語法為`new(address) objectType(constructorArgs);`。例如,`new(&s) Test(10);`。

數組的定位`new`。類似於定位`new`,但用於數組,語法為`new(p) objectType[arraySize](initializerList);`。

`nothrow`版本的`new`。這個版本的`new`在記憶體分配失敗時不拋出異常,而是返回NULL。語法為`void* p = new(std::nothrow) objectType[arraySize];`。

`placement new`。這是一種特殊的`new`,它允許在已分配的記憶體上構造對象或對象數組,而不進行記憶體分配。它主要用於在一塊已經分配成功的記憶體上重新構造對象或對象數組。

使用`new`時需要注意,創建完對象後,應適時使用`delete`操作符釋放分配給對象的記憶體,以避免記憶體洩漏。對於數組,應使用`delete[]`操作符進行釋放。