类模板

类模板使用实例

#include <iostream>
using namespace std;

template<typename T>
class A
{
public:
    A(T t):a(t){}
    T getA()
    {
        return a;
    }
private:
    T a;
};

int main()
{
    A<int> a1(100);    //在定义⼀个对象的时候,要明确此类所泛化的具体类型
    cout<<a1.getA()<<endl;
    A<char> a2('a');
    cout<<a2.getA()<<endl;

    return 0;
}
View Code

 

模板类的派生

#include <iostream>
using namespace std;

template<typename T>
class A
{
public:
    A(T t):a(t){}
    void printA()
    {
        cout<<"a: "<<a<<endl;;
    }
private:
    T a;
};

//模板类派生普通类,子类从模板类继承的时候,需要让编译器知道父类的数据类型具体是什么(数据类型的本质:固定大小内存快的别名)    
class B: public A<int>
{
public:
    B(int t1, int t2):A(t1), b(t2){}
    void printB()
    {
        A::printA();
        cout<<"b: "<<b<<endl;
    }
private:
    int b;
};

//模板类派生模板类
template<typename T>
class C: public A<T>
{
public:
    C(T t1, T t2):A(t1),c(t2){}
    void printC()
    {
        A::printA();
        cout<<"c: "<<c<<endl;
    }
private:
    T c;
};

int main()
{
    B b(1, 2);
    b.printB();

    C<int> c(3, 4);
    c.printC();

    return 0;
}
View Code

 

posted @ 2020-05-26 22:54  xd_xumaomao  阅读(134)  评论(0编辑  收藏  举报