类模板的简单使用

1.类模板的定义

2.类模板的使用

3.类模板做函数参数

4.类模板派生普通类

5.类模板派生类模板

#include "pch.h"
#include <iostream>
using namespace std;

template <typename T>//告诉编译器开始泛型编程
class A
{
public:
    A(T t)
    {
        a = t;
    }
    void printA()
    {
        cout << "a:" << a << endl;
    }
protected:
    T a;
};

//模板类派生普通类
//public A<int>模板类派生时,需要具体化,编译器要知道具体类型,父类所占内存是多少,只有数据类型定下来,才能分配内存
class B :public A<int>
{
public:
    B(int a, int b):A<int>(a)
    {
        this->b = b;
    }
    void printB()
    {
        cout << "b:" << b << endl;
    }
protected:
    int b;

};

//从模板类 派生 模板类
template <typename T>
class C :public A<T>
{
public:
    C(T c, T a):A<T>(a)
    {
        this->c = c;
    }
    void printC()
    {
        cout << "c:" << c << endl;
    }
protected:
    T c;
};
//模板类做函数参数
void useA(A<int> &a)
{
    cout << "func" << endl;
    a.printA();
}
//模板类的定义
//模板类的使用
int main()
{
    A<int> a1(1);//模板类是类型化,是抽象的,需要类型具体化
    a1.printA();

    B b1(2, 3);
    b1.printB();
    b1.printA();

    C<int> c1(4, 5);
    c1.printA();
    c1.printC();
    cout << "Hello World!\n"; 
}

 

posted @ 2019-03-21 08:53  星星之火可以燎源  阅读(242)  评论(0编辑  收藏  举报