亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C++ > 正文

深入C++中構造函數、拷貝構造函數、賦值操作符、析構函數的調用過程總結

2020-01-26 16:04:07
字體:
來源:轉載
供稿:網友
1 . 用同一個類的源對象構造一個目標對象時,會調用拷貝構造函數來構造目標對象,如果沒有定義拷貝構造函數,將調用類的默認拷貝函數來構造目標對象。
2 . 當一個函數的返回值為一個類的對象時,如果在調用函數中,沒有定義一個對象來接收這個返回對象值,會用返回一個臨時對象保存返回對象的值。在被調用函數結束時,這個臨時對象被銷毀。而當調用函數中有一個接受對象時,就將返回對象賦值給接收對象,這個返回對象在調用函數結束時調用析構函數。
3. 當類有一個帶有一個參數的構造函數時,可以用這個參數同類型的數據初始化這個對象,默認會調用這個構造函數。
復制代碼 代碼如下:

    #include "stdafx.h" 
    #include <iostream> 
    using namespace std; 
    class B 
    { 
    public: 
        B():data(0)    //默認構造函數 
        {  
            cout << "Default constructor is called." << endl; 
        } 
        B(int i):data(i) //帶參數的構造函數 
        { 
            cout << "Constructor is called." << data << endl; 
        } 
        B(B &b)   // 復制(拷貝)構造函數 
        { 
            data = b.data; cout << "Copy Constructor is called." << data << endl; 
        } 
        B& operator = (const B &b) //賦值運算符的重載 
        { 
            this->data = b.data; 
            cout << "The operator /"= /" is called." << data << endl; 
            return *this; 
        } 
        ~B() //析構函數 
        { 
            cout << "Destructor is called. " << data << endl; 
        } 
    private: 
        int data; 
    }; 

    //函數,參數是一個B類型對象,返回值也是一個B類型的對象 
    B fun(B b) 
    { 
        return b; 
    } 

    //測試函數 
    int _tmain(int argc, _TCHAR* argv[]) 
    { 
        fun(1); 
        cout << endl; 

        B t1 = fun(2); 
        cout << endl; 

        B t2; 
        t2 = fun(3); 

        return 0; 
    } 

復制代碼 代碼如下:

輸出結果為: 

復制代碼 代碼如下:

    Constructor is called.1             //用1構造參數b    
    Copy Constructor is called.1      //用b拷貝構造一個臨時對象,因為此時沒有對象來接受fun的返回值    
    Destructor is called. 1            //參數b被析構    
    Destructor is called. 1             //臨時對象被析構 
    Constructor is called.2                  //用2構造參數b       
    Copy Constructor is called.2           //用b拷貝構造t1,此時調用的是拷貝構造函數    
    Destructor is called. 2                  //參數b被析構 
    Default constructor is called.             //調用默認的構造函數構造t2       
    Constructor is called.3                       //用3構造參數b       
    Copy Constructor is called.3             //用b拷貝構造一個臨時對象       
    Destructor is called. 3                        //參數b被析構       
    The operator "= " is called.3              //調用=操作符初始化t2,此時調用的是賦值操作符    
    Destructor is called. 3                         //臨時對象被析構       
    Destructor is called. 3                         //t2被析構       
    Destructor is called. 2                         //t1被析構       
    請按任意鍵繼續. . . 

另外:
B t1 = fun(2); 和 B t2;  t2 = fun(3);  調用的構造函數不同,前面調用的是拷貝構造函數,后面的調用的是“=”操作符的重載,誰能告訴我原因呢 ?
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产成人精品免费久久久久| 日韩高清a**址| 日韩精品一二三四区| 久久影院在线观看| 亚洲第一视频在线观看| 亚洲欧洲日韩国产| 国产午夜精品全部视频播放| 69精品小视频| 成人日韩在线电影| 国产亚洲福利一区| 成人观看高清在线观看免费| 欧美精品在线看| 久久精品亚洲94久久精品| 欲色天天网综合久久| 亚洲石原莉奈一区二区在线观看| 亚洲精品xxxx| 久久精品中文字幕一区| 91高清免费在线观看| 久久99久国产精品黄毛片入口| 欧美一区二区三区免费视| 国产精品久久久久影院日本| 在线一区二区日韩| 亚洲视频电影图片偷拍一区| 欧美国产精品va在线观看| 午夜精品福利视频| 日韩欧美国产激情| 色爱av美腿丝袜综合粉嫩av| 国产精品一区电影| 久久国产精品久久久久久| 尤物yw午夜国产精品视频明星| 亚洲一区二区三| 成人写真福利网| 欧美视频专区一二在线观看| 欧美在线视频一区二区| 欧美日韩综合视频| 欧美亚洲视频在线观看| 国产精品久久久久久久久| 国产精品海角社区在线观看| 岛国av一区二区在线在线观看| 国产精品成人一区二区| 久久香蕉频线观| 91久久精品国产| 国产国语videosex另类| 国产精品老女人精品视频| 日韩欧美在线观看视频| 中文字幕亚洲图片| 亚洲日本成人网| 97视频色精品| 日韩中文字幕免费看| 欧美性开放视频| 欧美精品福利在线| 亚洲国产精品va在线观看黑人| 精品香蕉在线观看视频一| 日韩国产中文字幕| 国产日韩欧美在线看| 日本一区二区在线免费播放| 亚洲人成在线电影| 久久国产精品影片| 欧美日韩在线影院| 欧美大胆a视频| 全亚洲最色的网站在线观看| 精品综合久久久久久97| 国产精品免费久久久久久| 51精品在线观看| 亚洲国产天堂久久国产91| 亚洲精品av在线播放| 欧美综合国产精品久久丁香| 91av在线播放| 2024亚洲男人天堂| 久久天天躁狠狠躁夜夜躁| 国产精品视频大全| 欧洲成人在线视频| 有码中文亚洲精品| 亚洲女人天堂av| 国产精品色悠悠| 国产亚洲福利一区| 久久免费精品日本久久中文字幕| 欧美成人午夜剧场免费观看| 一本色道久久88亚洲综合88| 国产精品欧美在线| 精品欧美一区二区三区| 久久资源免费视频| 欧美激情综合色| 成人黄色午夜影院| 97国产精品免费视频| 最新国产成人av网站网址麻豆| 亚洲美女在线看| 国产精品中文在线| 亚洲欧美精品中文字幕在线| 中文字幕精品—区二区| 久久久久久久久久久av| 欧美一级免费视频| 国产成人精彩在线视频九色| 久久久久久亚洲| 91精品国产九九九久久久亚洲| 久久视频在线直播| 精品成人国产在线观看男人呻吟| 成人av在线亚洲| 国内精品中文字幕| 亚洲国产福利在线| 亚洲自拍偷拍一区| 米奇精品一区二区三区在线观看| 国产欧美精品在线播放| 亚洲国产另类 国产精品国产免费| 欧美夫妻性生活xx| 亚洲第一区在线| 日韩风俗一区 二区| 色偷偷偷亚洲综合网另类| 国产精品午夜一区二区欲梦| 人妖精品videosex性欧美| 国产97在线观看| 亚洲人午夜精品免费| 亚洲国产欧美一区二区三区同亚洲| 高清欧美一区二区三区| 97视频在线观看亚洲| 狠狠躁18三区二区一区| 人妖精品videosex性欧美| 日韩va亚洲va欧洲va国产| 成人黄色免费网站在线观看| 亚洲精品视频久久| 日韩av三级在线观看| 91亚洲精华国产精华| 欧美成人午夜激情在线| 精品日韩视频在线观看| 色偷偷偷综合中文字幕;dd| 亚洲欧美日韩视频一区| 久久久久久91| 亚洲视频在线播放| 日韩中文有码在线视频| 91香蕉国产在线观看| 69久久夜色精品国产69| 91精品国产一区| 91国产高清在线| 日韩欧美国产视频| 亚洲人成电影网站色| 国产亚洲福利一区| 亚洲影院污污.| 亚洲欧美一区二区三区情侣bbw| 亚洲国模精品私拍| 亚洲天堂男人天堂| 91免费人成网站在线观看18| 粉嫩av一区二区三区免费野| 在线精品国产成人综合| 国产精品主播视频| 欧美日韩免费网站| 国产精品日本精品| 欧美在线视频观看免费网站| 亚洲男人天堂视频| 久久精品青青大伊人av| 国产综合在线看| 91av视频在线免费观看| 按摩亚洲人久久| 亚洲区在线播放| 精品久久久久久亚洲精品| 成人亚洲综合色就1024| 日韩经典中文字幕在线观看| 国产亚洲欧美一区| 欧美大全免费观看电视剧大泉洋| 91探花福利精品国产自产在线| 国产精品久久久久久网站| 欧美成年人视频网站| 中文字幕久精品免费视频| 国产精品专区h在线观看| 96国产粉嫩美女|