C++ 在構造函數中使用new的注意事項
- 若是在構造函數中使用new來初始化指針成員,則應在析構函數中使用delete
- new和delete必須相互兼容。new對應於delete,new[]對應於delete[]
- 若是有多個構造函數,則必須以相同的方式使用new,要麼都帶中括號,要麼都不帶。由於只有一個析構函數,全部的構造函數都必須與它兼容。
- 與上面一條例外的是能夠在一個構造函數中使用new初始化指針,而在另外一個構造函數中將指針初始化爲空,這是由於delete(不管是帶中括號仍是不帶中括號)能夠用於空指針。
- C++傳統上更喜歡用簡單的0,而不是等價的NULL,但C++11的nullptr是更好的選擇。
歡迎關注本站公眾號,獲取更多信息