Effective C++
penguin80
这个作者很懒,什么都没留下…
展开
-
Item 5: 使用相同形式的new与delete
1。new做的事情:a) 分配内存。 b) 调用(一个或多个)ctor。 delete做的事情:a)调用(一个或多个)dtor。 b)释放内存。2。无论是自定义对象还是内建类型的分配与释放,都必须使用相同形式的new和delete。如果不匹配,行为未定义!单个对象:new,delete。数组:new [], delete []。3。delete无法知道释放的是单个对象还是数组,需要程序员明确地告之。4。当类中有pointer data member并且有多个ctor时,要保证在所有ctor中对该指针原创 2010-06-20 15:27:00 · 213 阅读 · 0 评论 -
Item 6: 记得在destructor中以delete对付pointer members
1。对于在类的ctors或者member functions中new的资源,记得要在dtor中释放该资源,否则会造成memory leak。一般情况下,也绝对不要轻易地delete一个并不由你new的的对象。2。在每一个ctor以及assignment中都要对pointer member做好相应的初始化工作。要么初始化好,要么设成空指针NULL。3。试图访问一个NULL指针(p->f())会crash你的程序,但是删除一个NULL指针是安全的。如果能保证程序运行中指针始终要么是NULL要么指向有效内存,那么原创 2010-06-20 15:53:00 · 180 阅读 · 0 评论