C++ 在構造函數中使用new的注意事項

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