天天看點

Effective C++學習筆記 (12)條款12:複制對象時勿忘其每一個成分

本人學習C++不精,故重新學習,點滴記錄與大家分享,不足之處還望大牛多多指教

Effective C++學習筆記 (12)條款12:複制對象時勿忘其每一個成分

條款12:複制對象時勿忘其每一個成分

         其實當我看到這個标題的時候我在想是不是說的深度拷貝的問題,但是我發現我想多了,畢竟這本書不是一本C++基礎教程。該條款主要是針對在繼承中,子類實作拷貝構造函數或者指派運算符時,父類的成員變量沒有初始化的問題。

         首先還是看下代碼吧。

Effective C++學習筆記 (12)條款12:複制對象時勿忘其每一個成分
Effective C++學習筆記 (12)條款12:複制對象時勿忘其每一個成分

         程式又一次通路異常,原因很簡單,在子類的拷貝構造函數中沒有初始化父類的成員。隻要在拷貝構造函數調用的時候初始化父類就OK,但是我在想這個問題在基本的C++教程中貌似也有講到過,是以基本的程式設計規範還是很有效的,至少可以避免這些問題。總之在你用一個變量之前确定它已經初始化好了。

Effective C++學習筆記 (12)條款12:複制對象時勿忘其每一個成分

對于指派運算符,其實是一樣的。