当你使用new时 ,有两件事情会发生,第一:内存被分配出来
第二:针对此内存会有一个构造函数被调用
当你使用delete时 ,也会有两件事情会发生, 第一:针对此内存有一个析构函数被调用
第二:释放内存
而使用delete的最大问题 是:即将被删除的内存之内究竟有多少对象?这个问题决定了有多少个析构函数必须被调用!
这里主要说的是单一对象和对象数组的问题,与单一对象不同,数组所用的内存通常还记录了数组的大小。
使用delete时,唯一能知道存在着“数组大小记录”的方法是detele[]。
总结:成对出现new和delete用相同的形式,若在new表达式中使用[],必须在相应的delete表达式中也使用[],如果在new表达式中不使用,则一定不要在delete中使用。
本文详细解释了C++中new和delete操作符的工作原理,重点讨论了它们在处理单一对象与对象数组时的区别,并强调了正确匹配使用new和delete的重要性。
57

被折叠的 条评论
为什么被折叠?



