C++中的二阶构造模式
生活随笔
收集整理的這篇文章主要介紹了
C++中的二阶构造模式
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
1 C++中的二階構(gòu)造模式
1.1 半成品對象
首先回顧下構(gòu)造函數(shù):
- 類的構(gòu)造函數(shù)用于對象的初始化。
- 構(gòu)造函數(shù)與類同名并且沒有返回值。
- 構(gòu)造函數(shù)在對象定義時自動被調(diào)用。
思考如下幾個問題:
實際上的構(gòu)造函數(shù):
- 只提供自動初始化成員變量的機會。
- 不能保證初始化邏輯一定成功。
- 執(zhí)行return語句后構(gòu)造函數(shù)立即結(jié)束。
構(gòu)造函數(shù)只能決定對象的初始化狀態(tài),構(gòu)造函數(shù)中初始化操作的失敗不影響對象的誕生!
半成品對象的概念:
- 初始化操作不能按照預(yù)期完成而得到的對象。
- 半成品對象是合法的C++對象,也是Bug的重要來源。
1.2 二階構(gòu)造
工程開發(fā)中的構(gòu)造過程可分為:
- 資源無關(guān)的初始化操作,不可能出現(xiàn)異常情況的操作。
- 需要使用系統(tǒng)資源的操作,可能出現(xiàn)異常情況,如:內(nèi)存申請、訪問文件。
二階構(gòu)造人為的將初始化過程分為兩部分,二階構(gòu)造能夠確保創(chuàng)建的對象都是完整初始化的。
示例代碼:
參考資料:
總結(jié)
以上是生活随笔為你收集整理的C++中的二阶构造模式的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C++中成员函数和成员变量的隶属问题
- 下一篇: C++中数学运算、比较、赋值操作符的重载