课程
/后端开发
/C++
/C++远征之封装篇(下)
此处堆内存的delete不是delete[]p?少了[]也可以?搞不清楚什么时候要[],什么时候不要,哪位大侠指导一下?拜谢
2019-01-14
源自:C++远征之封装篇(下) 4-3
正在回答
这是送分题吗
实例化对象是数组时才需要[]
如果申请的是数组就要用[],如果不是就不必要。。因为如果是数组不用delete[] ,,删除的只是第一个元素!
声明数组对象时需要delete []p,声明单个对象时只需要delete p
int *p =new int[5]; delete []p;
int *p =new int; delete p;
最简单的方法new 后面那个数据类型有没有[];有delete 就要有没有 delete就也不用
这里创建的*P是一个对象,所以销毁的时候不用[];当创建的是一个对象数组的话就需要[];这个是内存管理的内容,即申请一个内存,销毁的时候是delete p;申请的是内存块的话就要delete []p
举报
封装--面向对象三大特征之一,通过案例让C++所学知识融会贯通