删除运算符(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. C++ 类对象的内存时,对象的析构函数调用,在释放对象前的内存 (如果对象具有析构函数)。
如果对 删除 运算符的操作数是一个可修改的左值,其值是未定义的,在对象中后发生。
示例
有关使用 删除的示例,请参见 new 运算符。