<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    so true

    心懷未來,開創(chuàng)未來!
    隨筆 - 160, 文章 - 0, 評論 - 40, 引用 - 0
    數(shù)據(jù)加載中……

    C++中臨時變量的優(yōu)化與產(chǎn)生!

    #include <iostream>
    using namespace std;

    class A{
    public:
     A(){
      cout<<"ctor"<<endl;
     }
     ~A(){
      cout<<"dtor x="<<x<<endl;
     }
     void operator =(A a){
      cout<<a.x<<" wokao"<<endl;
     }
     int x;
    };

    A func(A a){
     return a;
    }

    void main(){
     A a1;
     a1=func(A());
    }
    輸出結(jié)果:
    ctor
    ctor
    dtor x=-858993460
    -858993460 wokao
    dtor x=-858993460
    dtor x=-858993460
    dtor x=-858993460
    dtor x=-858993460
    Press any key to continue

    ======================================
    為類A添加一個拷貝構(gòu)造函數(shù)后:
    #include <iostream>
    using namespace std;

    class A{
    public:
     A(){
      cout<<"ctor"<<endl;
     }
     A(A& a){
      cout<<"copy ctor"<<endl;
     }
     ~A(){
      cout<<"dtor x="<<x<<endl;
     }
     void operator =(A a){
      cout<<a.x<<" wokao"<<endl;
     }
     int x;
    };

    A func(A a){
     return a;
    }

    void main(){
     A a1;
     a1=func(A());
    }

    運行結(jié)果:
    ctor
    ctor
    copy ctor
    dtor x=4856604
    4856604 wokao
    dtor x=4856604
    dtor x=-858993460
    Press any key to continue

    ==================================
    結(jié)論:
    就像C++ Primer中寫到的一樣,如果你不顯示提供一個copy ctor,那么編譯器使用bitwise copy完成copy ctor功能,由于該操作極為簡便,因此編譯器不會進(jìn)行優(yōu)化,需要的時候就進(jìn)行此操作,因此第一段代碼的運行結(jié)果是調(diào)用了3次copy ctor。
    如果你自己定義了copy ctor,編譯器會認(rèn)為:我的用戶自己定制了copy ctor,八成要做什么復(fù)雜工作吧,每次copy出一個對象來都得費不少事,那么我還是為他/她進(jìn)行優(yōu)化吧。因此第二段代碼僅僅調(diào)用了1次copy ctor。

    P.S.:測試環(huán)境是VC6,如果改用G++編譯器的話,我試驗了一下,結(jié)論就不像前述所說的那樣了,各個編譯器有各自的優(yōu)化策略,總之。

    但VC6里面較好的體現(xiàn)出了Lippman的思想。

    posted on 2008-12-15 22:59 so true 閱讀(490) 評論(0)  編輯  收藏 所屬分類: C&C++

    主站蜘蛛池模板: 午夜视频免费观看| 一个人免费观看www视频在线| 无码国产亚洲日韩国精品视频一区二区三区| youjizz亚洲| 免费无码黄十八禁网站在线观看| 亚洲国产电影在线观看| 2020久久精品国产免费| 亚洲乱人伦精品图片| 大学生一级特黄的免费大片视频 | 国产麻豆免费观看91| 国产成人亚洲精品电影| 亚洲第一永久AV网站久久精品男人的天堂AV | 免费又黄又爽又猛的毛片 | 中文亚洲成a人片在线观看| 久久精品成人免费观看97| 亚洲成AV人片在线观看无 | 国产精品高清全国免费观看| 亚洲aⅴ无码专区在线观看| 亚洲国产成人五月综合网| 精品一区二区三区高清免费观看| 亚洲国产婷婷六月丁香| 猫咪免费人成网站在线观看| 国产精品亚洲片夜色在线| 情侣视频精品免费的国产| 中国性猛交xxxxx免费看| 久久精品亚洲中文字幕无码麻豆| 18国产精品白浆在线观看免费 | 男女一边摸一边做爽的免费视频| 亚洲视频在线观看| 午夜男人一级毛片免费| 亚洲精品视频免费| 亚洲国产精品成人精品软件| 国产又长又粗又爽免费视频 | 亚洲国模精品一区 | 国产大片91精品免费看3| 在线成人精品国产区免费| 国产99在线|亚洲| 综合久久久久久中文字幕亚洲国产国产综合一区首 | 亚洲色丰满少妇高潮18p| 亚洲精品无码高潮喷水在线| 成人免费午夜无码视频|