内存管理:
条款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中将他们删除。
阅读(967) | 评论(0) | 转发(0) |