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>。

 

 

 

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