14.2.5重学C++之【类模板与继承】

#include<iostream>
#include<stdlib.h>
#include<string>
using namespace std;
#include<typeinfo>


/*
    1.3.5类模板与继承
        当子类继承的父类是一个类模板时,子类在声明的时候,要指定出父类中T的类型
        如果不指定,编译器无法给子类分配内存
        如果想灵活指定出父类中T的类型,子类也需变为类模板

*/


template<class T>
class Base{
public:
    T m;
};


/*
class Son : public Base{ // 直接这么写是错误的
};
*/


class Son:public Base<int>{ // ok
};


template<class T1, class T2>
class Son2:public Base<T1>{
public:
    T2 n;

    Son2(){
        cout << "T1:" << typeid(T1).name() << endl;
        cout << "T2:" << typeid(T2).name() << endl;
    }
};


void test(){
    Son s1;

    Son2<int, char> s2;
}


int main(){
    test();

    system("pause");
    return 0;
}

posted @ 2021-04-18 14:11  yub4by  阅读(87)  评论(0)    收藏  举报