模板类的继承

xiaoxiao2021-02-27  294

#include  "stdafx.h" #include<iostream>   #include<iomanip>  using namespace std;   //-----------------------------普通类继承模板类-------------------------------------- template<class T> class A {   public: T a; A() { cout << "Construct  A" << endl; } }; class B : public A<int> { public : B() { a = 111; cout << "Construct  B" << endl; } }; //-----------------------------模板类继承了普通类-------------------------------------- class A1 { public:   int a; A1() { cout << "Construct  A1" << endl; } }; template<class T> class B1 : public A1 { public: T b; B1() { a = 222; cout << "Construct  B1" << endl; } }; //-----------------------------类模板继承类模板-------------------------------------- template<class T> class A2 { public : T  a;  A2() { a = 100; cout << "Construct  A2" << endl; } }; template<class T1, class T2> class B2 :public A2<T1> { public : T2  b;  B2() { cout << "Construct  B2" << endl; }   }; //-----------------------------类模板继承类模板, 但是T为模板类--------------------------------------   template<typename T, int  t> class   A3{ public: T  a; A3() :a(t) { cout << "Construct  A3" << endl; } }; template<typename T> class B3 :public T { //继承T public: B3() :T() {   cout << "Construct  B3" << endl; } }; int main() {    B  b; cout << b.a << endl;   B1<int>  b1; cout << b1.a << endl; B2<int,float>  b2; cout << b2.a << endl;    B3< A3<int, 333> >   b3; //       模板类作为基类   cout << b3.a << endl; }  
转载请注明原文地址: https://www.6miu.com/read-2958.html

最新回复(0)