• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            CG@CPPBLOG

            /*=========================================*/
            隨筆 - 76, 文章 - 39, 評論 - 137, 引用 - 0
            數據加載中……

            final 加強


             
            在我的舊文中,曾經提到在 C++ 中實現 Java 的 final 功能,但每次都要寫一個基類比較麻煩,今次用模板把它加強。
             
             1 template<class T>
             2 class final{
             3         friend T;
             4 private:
             5         final(){};
             6 };
             7 
             8 class MyTest : public virtual final<MyTest>{
             9 public:
            10         MyTest(){};
            11 };

             
            這樣以后就可以直接繼承模板類 final<T>,而不用每次都寫一個類。
             
            在這里順便說一下,為什么一定要虛繼承,假設我們有
             
            1 class test : public MyTest{};

             
            如果上面不是虛繼承,那么 final 類的構造函數由 MyTest 的構造函數負責調用,因為是友元類,則調用成功,無法阻止 test 實例化。而一旦聲明為虛繼承,MyTest 不再負責調用 final 的構造函數,而由 test 來調用,那么因為不是友元類,實例化將失敗,編譯出錯,提示不能訪問私有的構造函數。
             

            posted on 2007-12-17 21:37 cuigang 閱讀(358) 評論(1)  編輯 收藏 引用 所屬分類: C/C++

            評論

            # re: final 加強  回復  更多評論   

            頂一下
            2007-12-18 14:50 | 秦歌
            青草国产精品久久久久久| 久久er国产精品免费观看8| 秋霞久久国产精品电影院| 久久国产亚洲精品| 久久综合伊人77777| 久久久久久亚洲精品无码| 久久这里只精品国产99热| 久久99亚洲网美利坚合众国| 久久人与动人物a级毛片| 深夜久久AAAAA级毛片免费看| 久久久久97国产精华液好用吗| 久久97久久97精品免视看秋霞| 青青草原1769久久免费播放| 青青草国产成人久久91网| 国产精品激情综合久久| 久久精品国产第一区二区| 久久精品国产国产精品四凭| 久久久WWW成人免费毛片| 欧美日韩成人精品久久久免费看| 久久伊人五月天论坛| 久久久午夜精品| 漂亮人妻被黑人久久精品| 久久被窝电影亚洲爽爽爽| 国产综合成人久久大片91| 日韩电影久久久被窝网| 少妇久久久久久被弄高潮| 久久国产精品久久久| 久久久久国产一区二区| 久久九九久精品国产免费直播| 99久久夜色精品国产网站| 久久国产乱子伦精品免费强| 久久精品亚洲男人的天堂| 亚洲中文字幕无码久久精品1 | 久久国产精品99精品国产987| 国产精品gz久久久| 久久人与动人物a级毛片| 亚洲乱亚洲乱淫久久| 伊人色综合久久天天人手人婷| 色综合久久88色综合天天 | 欧美亚洲日本久久精品| 久久99精品久久只有精品|