類設計者的核查表【文摘】

1、類需要一個構造函數么?

2、數據成員是私有的么?

3、需要一個無參的構造函數么?

4、是不是每個構造函數初始化所有的數據成員?

5、類需要析構函數么?

6、類需要一個虛析構函數么?

當然,決不會用作基類的類是不需要虛析構函數的——“任何虛函數只在繼承的情況下才有用?!?/p>

假設有:D public: B

則只要有人可能會對實際指向D類型對象的B*指針執行delete表達式,你就需要給B加上一個虛析構函數。

例:

B* pbd = new D;

delete pbd;

7、你的類需要復制構造函數么?

如果類在構造函數內分配資源,則可能需要一個顯示的復制構造函數來管理資源;

如果不想用戶能夠復制類的對象,就聲明復制構造函數(可能還有賦值操作符)為私有的。

8、你的類需要一個賦值操作符么?

需要復制的構造函數,多半會需要。

9、你的賦值操作符能正確地將對象賦給對象本身么?(要先保存舊值,再賦新值,再刪除舊值。)

10、類需要定義關系操作符么?

11、刪除數組時,你記得使用 delete[] 了么?

12、記得在復制構造函數和賦值操作符的參數類型中加上 const 了么?

13、如果函數有引用參數,他們應該是 const 引用么?

14、記得適當地聲明成員函數為 const 的了么?

文字摘自《C++沉思錄》

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 前言 把《C++ Primer》[https://book.douban.com/subject/25708312...
    尤汐Yogy閱讀 9,533評論 1 51
  • 本文博客園地址:http://www.cnblogs.com/xiongxuanwen/p/4290086.htm...
    先之閱讀 862評論 0 5
  • 1. 讓自己習慣C++ 條款01:視C++為一個語言聯邦 為了更好的理解C++,我們將C++分解為四個主要次語言:...
    Mr希靈閱讀 2,845評論 0 13
  • 你說過你不將就,為何偏偏四處招惹胭脂紅粉?你說過你要等她,為何偏偏要邊走邊尋找??诳诼暵晲廴牍撬?,心心念念等她走回...
    扎如閱讀 194評論 0 0
  • 刀光劍影,鼓角爭鳴。 我又一次回到那黃塵古道,烽火邊城。 孩兒已睡下,我走出營帳。 月很圓也很美,漸漸...
    微初塵閱讀 284評論 0 0