當前位置 主頁 > 網站技術 > 代碼類 > 最大化 縮小

    C++ 泛型編程詳解(3)

    欄目:代碼類 時間:2020-02-06 21:08

    類模板具體化,類模板的具體化分為部分具體化和全部具體化兩種

    template<typename T1, typename T2>
    class Test {
    public:
     Test() {
     cout << "T1 and T2" << endl;
     }
    };
    // 部分具體化
    template<typename T1>
    class Test<T1, int> {
    public:
     Test() {
     cout << "T1 and int" << endl;
     }
    };
    // 部分具體化
    template<typename T2>
    class Test<long, T2> {
    public:
     Test() {
     cout << "long and T2" << endl;
     }
    };
    // 全部具體化
    template<>
    class Test<long, int> {
    public:
     Test() {
     cout << "long and int" << endl;
     }
    };
    // 分別創建上面四個類
    Test<char, char>();
    Test<char, int>();
    Test<long, char>();
    Test<long, int>();

    成員模板

    成員模板簡單說就是模板中的模板

    class Base1 { };
    class Base2 { };
    class Test1 : public Base1 { };
    class Test2 : public Base2 { };
    template<typename T1, typename T2> 
    class Pair {
    public:
     T1 t1;
     T2 t2;
     Pair(T1 t1, T2 t2) : t1(t1), t2(t2) {
     }
     // 類模板中的成員模板
     template<typename U1, typename U2>
     Pair(const Pair<U1, U2>& pair) : t1(pair.t1), t2(pair.t2){
     }
    };
    Pair<Base1*, Base2*>(Pair<Test1*, Test2*>(new Test1, new Test2));

    如果未特殊說明,以上測試均是在win10 vs2017 64bit編譯器下進行的

    總結

    以上所述是小編給大家介紹的C++ 泛型編程,希望對大家有所幫助!

    下一篇:沒有了
777亚洲人成视频免费视频