模板类派生模板类

来源:互联网 发布:cms摄像头监控软件设置 编辑:程序博客网 时间:2024/06/05 07:22
#include <iostream>using namespace std;template<typename T>class A{public:A(T a){this->a = a;}void printA(){cout<<"a:"<<a<<endl;}protected:private:T a;};//模板派生是需要具体化模板类 c++编译器需要知道 父类的数据类型具体是什么样的(派生类首先调用父类的构造函数)//=====》要知道父类所占内存大小是多少,只有数据类型固定下来,才知道如何分配内存class B:public A<int>{public:B():A(1){this->a = 10;}void printA(){cout<<"a:"<<a<<endl;}protected:private:int a;};//类模板派生类模板template<typename T>class B2:public A<T>{public:B2(T c, T d):A<T>(c){this->c = c;this->d = d;}void printC(){cout<<"c:"<<c<<endl;}protected:private:T c;T d;};//类模板做函数参数void UseA(A<float> &a){a.printA();}int main(){B2<int> b(1,2);b.printC();system("pause");return 0;}

0 0