- 如果在構造函數中使用new來初始化指針成員,則應在析構函數中使用delete
- new和delete必須相互兼容。new對應於delete,new[]對應於delete[]
- 如果有多個構造函數,則必須以相同的方式使用new,要么都帶中括號,要么都不帶。因為只有一個析構函數,所有的構造函數都必須與它兼容。
- 與上面一條例外的是可以在一個構造函數中使用new初始化指針,而在另一個構造函數中將指針初始化為空,這是因為delete(無論是帶中括號還是不帶中括號)可以用於空指針。
- C++傳統上更喜歡用簡單的0,而不是等價的NULL,但C++11的nullptr是更好的選擇。