Chinaunix首页 | 论坛 | 博客
  • 博客访问: 973540
  • 博文数量: 58
  • 博客积分: 10192
  • 博客等级: 上将
  • 技术积分: 1845
  • 用 户 组: 普通用户
  • 注册时间: 2010-11-22 21:24
文章分类

全部博文(58)

文章存档

2011年(11)

2010年(12)

2009年(20)

2008年(15)

分类: C/C++

2009-07-11 23:03:51

内存管理:
条款5:使用相同形式的new和Delete
比如:
string *p = new string;
string *p2 =  new string[100];

delete p; //正确
delete p2;//错误,new和delete不是相同形式,误认为是new string导致错误
delete [] p2;//这样才是对的,因为删除数组

条款6:记得在destructor中以delete对付pointer members
1.在每一个constructors中将该指针初始化,如果没有任何一个constructor会将内存配置给该指针,那么指针应该初始化为0(成为null指针)。
2.在assignment运算符中将指针原有的内存删除,重新配置一块。
3.在destructor中删除(delete)这个指针。

注意:删除一个null指针是安全的。所以pointer member要不指向有效内存,要不指向NULL,那你才可以安全的在destructor中将他们删除。


阅读(971) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~