欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

C++--二階構造模式

A.關于構造函數(shù)
1.類的構造函數(shù)用于對象的初始化
2.構造函數(shù)與類同名并且沒有返回值
3.構造函數(shù)在對象定義時被自動被調用
Q.問題的出現(xiàn)
1.如何判斷構造函數(shù)的執(zhí)行結果?
2.在構造函數(shù)中執(zhí)行return語句會發(fā)生什么?
3.構造函數(shù)執(zhí)行結束是否意味著對象構造成功?
代碼示例

創(chuàng)新互聯(lián)專注于雙河企業(yè)網(wǎng)站建設,響應式網(wǎng)站,商城網(wǎng)站建設。雙河網(wǎng)站建設公司,為雙河等地區(qū)提供建站服務。全流程按需求定制網(wǎng)站,專業(yè)設計,全程項目跟蹤,創(chuàng)新互聯(lián)專業(yè)和態(tài)度為您提供的服務

#include <iostream>
using namespace std;

class Test
{
    int mi;
    int mj;
public:
    Test(int i, int j) 
    {
        mi = i;       
        mj = j       
    }
    int getI()
    {
        return mi;
    }
    int getJ()
    {
        return mj;
    }
};

int main()
{  
    Test t1(1, 2);

    cout<<"t1.getI()="<<t1.getI()<<endl;
    cout<<"t1.getJ()="<<t1.getJ()<<endl;

    return 0;
}

運行結果如圖所示
C++--二階構造模式
可知當沒在構造函數(shù)添加return返回值時,函數(shù)的運行結果是符合預期的,初始化邏輯成功了
當在構造函數(shù)添加return時
改動的過程運行的結果如圖所示
C++--二階構造模式C++--二階構造模式
由這次的運行結果我們可以知道,在添加return之后,打印的t1.getJ()的值為隨機值,初始化失敗了,由此可以推測執(zhí)行到return語句后構造函數(shù)結束了
由此可以對之前提出的問題進行了解答
1.構造函數(shù)只提供自動初始化成員變量的機會
2.構造函數(shù)不能保證初始化邏輯一定成功
3.構造函數(shù)執(zhí)行return語句后構造函數(shù)立即結束

半成品對象
半成品對象的概念:初始化操作不能按照預期完成而得到的對象,半成品對象時合法的C++對象,也是Bug的重要來源
二階構造
工程開發(fā)中的構造過程可以分為
1.資源無關的初始化操作--不可能出現(xiàn)異常情況的操作
2.需要使用系統(tǒng)資源的操作--可能出現(xiàn)的異常情況,如:內(nèi)存申請,訪問文件
C++--二階構造模式

#include <iostream>
using namespace std;

class TwoPhaseCons 
{
private:
    TwoPhaseCons() // 第一階段構造函數(shù)
    {   
    }
    bool construct() // 第二階段構造函數(shù)
    { 
        return true; 
    }
public:
    static TwoPhaseCons* NewInstance(); // 對象創(chuàng)建函數(shù)
};

TwoPhaseCons* TwoPhaseCons::NewInstance() 
{
    TwoPhaseCons* ret = new TwoPhaseCons();

    // 若第二階段構造失敗,返回 NULL    
    if( !(ret && ret->construct()) ) 
    {
        delete ret;
        ret = NULL;
    }

    return ret;
}

int main()
{
    TwoPhaseCons* obj = TwoPhaseCons::NewInstance();

    cout<<"obj="<<obj<<endl;//打印出obj的地址

    delete obj;

    return 0;
}

運行結果如圖所示
C++--二階構造模式
小結:
1.構造函數(shù)只能決定對象的初始化狀態(tài)
2.構造函數(shù)中初始化操作的失敗不影響對象的誕生
3.初始化不完全的半成品對象是Bug的重要來源
4.二階構造人為的將初始化過程分為兩部分
5.二階構造能夠確保創(chuàng)建的對象都是完整初始化的

本文題目:C++--二階構造模式
分享URL:http://chinadenli.net/article28/joipjp.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供定制網(wǎng)站、微信小程序、關鍵詞優(yōu)化、網(wǎng)站導航、電子商務、面包屑導航

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)頁設計公司
精品人妻av区波多野结依| 深夜福利欲求不满的人妻| 不卡中文字幕在线视频| 欧美午夜伦理在线观看| 中国美女偷拍福利视频| 国产精品不卡免费视频| 亚洲欧美日本国产不卡| 久久经典一区二区三区| 不卡中文字幕在线免费看| 国产又爽又猛又粗又色对黄| 亚洲精品中文字幕熟女| 日韩一区二区三区观看| 欧美成人黄色一区二区三区| 尤物久久91欧美人禽亚洲| 国产欧洲亚洲日产一区二区| 熟妇久久人妻中文字幕| 免费观看日韩一级黄色大片| 粉嫩国产美女国产av| 免费特黄欧美亚洲黄片| 精品综合欧美一区二区三区| 国产丝袜美女诱惑一区二区| 国产情侣激情在线对白| 中文字日产幕码三区国产| 国产日韩欧美国产欧美日韩| 亚洲成人精品免费在线观看| 91精品国产综合久久不卡| a久久天堂国产毛片精品| 亚洲欧美国产中文色妇| 国产三级视频不卡在线观看| 久久久免费精品人妻一区二区三区| 色婷婷视频免费在线观看| 欧美成人一区二区三区在线| 日韩精品一区二区三区射精| 久久精品国产熟女精品| 超薄肉色丝袜脚一区二区| 97人摸人人澡人人人超碰| 亚洲一区二区久久观看| 国产欧美日韩精品一区二| 日本熟妇熟女久久综合| 国产成人亚洲精品青草天美| 欧美黄色成人真人视频|