C++ 析构函数与delete[]
来源:互联网 发布:阿芙护肤品怎么样知乎 编辑:程序博客网 时间:2024/06/04 18:23
delete 回收new为对象分配的内存;
析构函数不是删除对象,而是在删除前做一些清理工作,使该部分内存为新的对象使用。
最近碰到一个问题,使用clear()时直接使用:
void clear(){//.....delete[]element;//....}get(int theIndex) const{ checkIndex(theIndex);//检测Index是否合理,否则抛出异常 return element[theIndex];}
调用如下:
x.clear(); try { x.get(0); } catch (illegalParameterValue e) { e.outputMessage(); }
此刻抛出中断,因为访问了一个不存在的内存,其后改为
void clear(){//.....for (int i = 0; i < listSize; i++) element[i].~T();//....}
之后正常,究其原因是clear只是使数组清空,而不是清除这块内存
阅读全文
0 0
- 析构函数与delete的思考
- C++ 析构函数与delete[]
- {c++}delete与delete[]
- 【c++】析构函数中delete this指针
- C中的malloc()函数和free()函数与C++中的new()函数和delete()函数详解
- C++ 析构函数以及 delete 和delete[]的整理
- C++ 构造函数与析构函数详解(二)---自由存储 new和delete
- Effective C++:条款6:析构函数里对指针成员调用delete
- c++-构造函数与析构函数
- C++--构造函数与析构函数
- 【c++】构造函数与析构函数
- C++:构造函数与析构函数
- C/C++ New与Delete
- C++: delete与内存泄露
- delete 和 析构函数的关系
- 析构函数 和delete运算符
- C++ vector的delete与clear的区别 - 析构函数
- C++ vector的delete与clear的区别 - 析构函数
- 在Java中,如何跳出多重循环
- 敏捷开发团队管理系列
- 以太坊生产网络/测试网络/私有网络
- Phoenix实现用SQL查询HBase
- Kaitou Kid
- C++ 析构函数与delete[]
- Numpy之sum函数用法
- redis在java项目中的使用
- 多列布局
- Git使用
- 2017 Multi-University Training Contest 5 &&HDU 6085 Rikka with Candies 【bitset+思维】
- HBase编程实例—HBase连接池
- 【笨鸟先飞】android重新学习日记3---识别用户行为
- Java获得项目绝对路径