共用方式為


刪除運算子 (C++)

解除配置記憶體的區塊。

[::] delete cast-expression
[::] delete [ ] cast-expression

備註

轉型運算式 引數必須是變數的指標,以建立為物件先前配置的記憶體區塊 new 運算子刪除運算子的結果是類型void ,因此不會傳回值。例如:

CDialog* MyDialog = new CDialog;
// use MyDialog
delete MyDialog;

使用刪除 上未配置的物件指標 導致意想不到的結果。但是,您可以使用刪除上具有 0 值的指標。依此儲備表示,當 失敗時,刪除失敗的結果會傳回 0 作業是無害的。請參閱新增及刪除運算子如需詳細資訊。

刪除運算子也可以用於內建的型別,包括陣列。如果pointer陣列位置之前的空括號會指向pointer:

int* set = new int[100];
//use set[]
delete [] set;

使用刪除物件的運算子會解除配置其記憶體。取值指標之後刪除物件的程式可能無法預期的結果或損毀。

刪除是用來解除配置記憶體給 C++ 類別物件,物件的解構函式之前呼叫 (如果物件具有解構函式),會解除配置物件的記憶體。

如果運算元刪除運算子是為可修改左值、 物件刪除後,它的值是未定義。

範例

如需範例,使用的刪除,請參閱 new 運算子

請參閱

參考

一元 (unary) 運算子的運算式

C + + 關鍵字

如何刪除工作

使用刪除

新增和刪除操作員

運算子 delete 函式