/*
用new时有两件事情发生:
内存被分配出来
针对内存会有一个构造函数被调用(对相关内存管理的类进行初始化)
用delete时同样也是有两件事发生:
针对内存有一个析构函数被调用(对相关内存管理的对象进行释放)
内存被回收
delete最关心的就是,即将被删除的内存内究竟有多少个对象,这决定需要调用多少个析构函数;
即将被删除的那个指针指向的是单一对象还是对象数组
*/
delete stringPtr1;//删除一个对象
delete [] stringPtr2;//删除一个对象数组
/*
规则很简单,在new表达式中使用[],在delete表达式中也一定要使用[].反之亦然。
*/
//注意:尽量不要去在数组上使用typedef,因为这样会掩盖[],只使用delete时不小心就会遗漏[].
effective C++学习---条款16:成对使用new和delete时要采取相同形式
最新推荐文章于 2019-08-19 12:36:04 发布