码迷,mamicode.com
首页 > 其他好文 > 详细

模板类的继承

时间:2017-10-10 22:01:43      阅读:281      评论:0      收藏:0      [点我收藏+]

标签:repr   class   include   sea   article   clu   tail   bar   模板类   

模板类的继承包括四种:

1.(普通类继承模板类)

 

[cpp] view plain copy
 
  1. template<class T>  
  2. class TBase{  
  3.     T data;  
  4. ……  
  5. };  
  6. class Derived:public TBase<int>{  
  7. ……  
  8. };  



 

2.(模板类继承了普通类(非常常见))

 

[cpp] view plain copy
 
  1. class TBase{  
  2. ……  
  3. };  
  4. template<class T>  
  5. class TDerived:public TBase{  
  6. T data;  
  7. ……  
  8. };  



 

3.(类模板继承类模板)

 

[cpp] view plain copy
 
  1. template<class T>  
  2. class TBase{  
  3. T data1;  
  4. ……  
  5. };  
  6. template<class T1,class T2>  
  7. class TDerived:public TBase<T1>{  
  8. T2 data2;  
  9. ……  
  10. };  



 

4.(模板类继承类模板,即继承模板参数给出的基类)

 

[cpp] view plain copy
 
    1. #include<iostream>  
    2. using namespace std;  
    3.   
    4. class BaseA{  
    5. public:  
    6.     BaseA(){cout<<"BaseA founed"<<endl;}  
    7. };  
    8. class BaseB{  
    9. public:  
    10.     BaseB(){cout<<"BaseB founed"<<endl;}  
    11. };  
    12. template<typename T, int rows>  
    13. class BaseC{  
    14. private:  
    15.     T data;  
    16. public:  
    17.     BaseC():data(rows){  
    18.         cout<<"BaseC founed "<< data << endl;}  
    19. };  
    20. template<class T>  
    21. class Derived:public T{  
    22. public:  
    23.     Derived():T(){cout<<"Derived founed"<<endl;}  
    24. };  
    25.   
    26. void main()  
    27. {  
    28.     Derived<BaseA> x;// BaseA作为基类  
    29.     Derived<BaseB> y;// BaseB作为基类  
    30.     Derived<BaseC<int, 3> > z; // BaseC<int,3>作为基类  
    31. }  

模板类的继承

标签:repr   class   include   sea   article   clu   tail   bar   模板类   

原文地址:http://www.cnblogs.com/zms365/p/7647784.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!