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! "; }