<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++ implements final keyword

    #include <iostream>
    #include <string>
    #include <vector>
    #include <map>
    #include <set>
    using namespace std;
    //part 1
    class A {
    private:
        A() {};
    public:
        static A* GetInstance() {
            return new A();
        }
    };
    //part 2
    class A {
        friend class B;
    private:
        A() {};
    };
    class B: public A {
    };
    //part 3
    class A {
        friend class B;
    private:
        A() {};
    };
    class B: virtual public A {
    };
    //part 4: 奇異遞歸模板模式(curiously recurring template pattern,CRTP)
    template <typename T>
    class A {
        friend T;
    private:
        A() {};
    };
    class B: virtual public A<B> {
    };
    //part 4.2:
    //這種技術獲得了類似于虛函數的效果,并避免了動態多態的代價。也有人把CRTP稱為“模擬的動態綁定”
    template <typename T>
    struct counter
    {
        static int objects_created;
        static int objects_alive;
        counter()
        {
            ++objects_created;
            ++objects_alive;
        }
        
        counter(const counter&)
        {
            ++objects_created;
            ++objects_alive;
        }
    protected:
        ~counter() // objects should never be removed through pointers of this type
        {
            --objects_alive;
        }
    };
    template <typename T> int counter<T>::objects_created( 0 );
    template <typename T> int counter<T>::objects_alive( 0 );
    class X : counter<X>
    {
        ...
    };
        
    class Y : counter<Y>
    {
         ...
    };
    //part 5
    class A {
    protected:
        A() {};
    };
    class B: virtual A {
    };
    //part 6
    class B final {
    };
    //validate
    class C: public B {
    };
    int main(int argc, char* argv[]) {
        B b;
        C c;
        return 0;
    }

    posted on 2017-07-17 19:31 so true 閱讀(188) 評論(0)  編輯  收藏 所屬分類: C&C++

    主站蜘蛛池模板: 成人无遮挡毛片免费看| 亚洲第一成年人网站| 四虎影视www四虎免费| 久久国产精品成人免费| 羞羞视频免费网站入口| 亚洲午夜精品国产电影在线观看| 中文字幕亚洲一区二区va在线| 在线成人a毛片免费播放| 少妇无码一区二区三区免费| 一级日本高清视频免费观看| 亚洲精品乱码久久久久久V | 亚洲成人动漫在线观看| 伊人久久大香线蕉亚洲五月天| 国产嫩草影院精品免费网址| A级毛片内射免费视频| 亚洲人成在线免费观看| 无码人妻丰满熟妇区免费| 久久国产乱子伦精品免费午夜| 小说专区亚洲春色校园| 亚洲国产精品嫩草影院| 国产精品高清视亚洲精品| 亚洲欧洲精品国产区| 麻豆亚洲av熟女国产一区二| 久久精品国产精品亚洲艾草网| 亚洲综合伊人久久大杳蕉| 亚洲黄片毛片在线观看| 国产小视频在线观看免费| 国产美女无遮挡免费视频网站| 成人男女网18免费视频| 成人奭片免费观看| 青青草国产免费久久久下载| 成全影视免费观看大全二| 成年女人毛片免费视频| 精品熟女少妇AV免费观看| 美女被cao免费看在线看网站| 成年人网站免费视频| 69av免费视频| 国产91免费在线观看| 免费可以在线看A∨网站| 扒开双腿猛进入爽爽免费视频 | wwwxxx亚洲|