防止内存泄露的一些Tips
来源:互联网 发布:手机app界面设计软件 编辑:程序博客网 时间:2024/05/06 07:41
1.如果在构造函数里new了一个对象并使用成员指针变量来保存,那么必须在析构函数里delete它,并且不能为了某些便利而将这个对象的所有权转让出去的事情发生。
2.尽量使用shared_ptr。只要不发生循环引用,那么这个东西可以让你的对象安全地互相传递,随便放在什么容器里面添加删除,再也不用考虑生命周期问题了。(什么是循环引用?简单来说就是,两个对象都使用了一个shared_ptr成员变量直接或者间接指向对方。这时候,引用计数就失效了。)
3.慎用memset和memcpy,尤其是在针对有构造函数的对象时。
a)对象中有string成员,memset一下,就呵呵了。
b)对象是派生类对象,由于父类内部结构的演变不需要对子类负责,如果哪天父类里面加一个vector成员,就呵呵了。
c)对象中保存有new出来的内存块指针,memset一下,析构函数里的delete就失去意义了。
d)类中有虚函数,memset也会把对象中的虚函数表指针覆盖掉。
4.如果需要为一个对象定义构造函数,那么连复制构造函数、operator=重载和析构函数全部写全。如果不想写的话那么就用一个空的实现并标记为private,确保任何试图调用这些函数的代码都出现编译错误,这样可以防止一些你不知道的隐式调用致使你的代码失控。
0 0
- 防止内存泄露的一些Tips
- 防止Java内存泄露的一些小细节
- 防止C代码内存泄露的方法
- 防止android应用的内存泄露
- 防止android应用的内存泄露
- 防止 Java 内存泄露的安全措施
- 防止android内存泄露的机制方式
- 内存泄露的一些方案
- 一些常见的内存泄露
- 防止内存泄露
- JAVA防止内存泄露
- Handler防止内存泄露
- Android防止内存泄露
- 内存管理-防止泄露
- 内存泄露防止
- ADO防止内存泄露和减少内存开销的方法
- c# 防止内存泄露 内存溢出 之using的用法
- Symbian 防止RPointerArray内存泄露
- OSX:App Store下载到哪里去了?
- android调用系统相机实现拍照功能
- 一个Excel转换Java集合的工具类
- 数据结构算法,通用控制台完善
- HDU 4438 Hunters(模拟)
- 防止内存泄露的一些Tips
- 指向学生类的指针
- 第三章作业(后)
- test Week 5
- 黑马程序员_泛型
- IOS Foundation框架基本类库的使用
- HighCharts之2D对数饼图
- 第五周项目三
- ngnix+uwsgi+python+django环境搭建