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

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

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

    so true

    心懷未來,開創未來!
    隨筆 - 160, 文章 - 0, 評論 - 40, 引用 - 0
    數據加載中……

    C++中臨時變量的優化與產生!

    #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());
    }
    輸出結果:
    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添加一個拷貝構造函數后:
    #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());
    }

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

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

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

    但VC6里面較好的體現出了Lippman的思想。

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

    主站蜘蛛池模板: 女人18毛片水真多免费看| 91视频免费观看| 青春禁区视频在线观看直播免费 | AV激情亚洲男人的天堂国语| 国内精自视频品线六区免费| 亚洲高清视频免费| 69式互添免费视频| 亚洲人和日本人jizz| 永久免费的网站在线观看| 中文字幕在线日亚洲9| 日韩午夜免费视频| 日韩在线观看免费| 激情综合色五月丁香六月亚洲| 三级黄色免费观看| 亚洲综合久久久久久中文字幕| 免费精品国产日韩热久久| 亚洲偷自拍另类图片二区| 国产国产成年年人免费看片| 无套内射无矿码免费看黄| 亚洲国产婷婷六月丁香| 91福利免费视频| 亚洲精品成a人在线观看夫| 亚洲AV无码一区二区三区国产| 成人一区二区免费视频| 亚洲福利一区二区| 国产精品美女自在线观看免费| h片在线观看免费| 亚洲影院在线观看| 最好免费观看韩国+日本 | 亚洲人成网站18禁止| 亚洲国产成人久久精品99| 国产精品区免费视频| 亚洲中文字幕无码亚洲成A人片| 亚洲成a人片在线观看日本麻豆| 最近免费中文字幕MV在线视频3 | 亚洲一区二区三区日本久久九| 国产v精品成人免费视频400条| 看Aⅴ免费毛片手机播放| 西西人体44rt高清亚洲| 免费高清在线影片一区| a级毛片在线视频免费观看|