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中对该指针的赋值具有相同语义,要么全指向单个对象,要么全指向数组。否则,在dtor中应该使用delete还是delete []来释放它呢?

 

5。如果typedef一个数组?

 

 

 

6。不推荐对数组使用typedef,因为维护人员可能误以为指针指向的是单个对象而非数组。这种情况推荐使用vector<string>。

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章