当前位置:   article > 正文

类模板的继承_模板类继承

模板类继承

当类模板碰到继承时,需要注意以下几点:
1)当子类继承到父类是一个类模板时,子类在声明时,需要指出父类中T的数据类型。
2)如果不指定,编译器无法给子类分配内存空间
3)如果想灵活指定出父类中T的类型,子类也需要变成类模板。

  1. #include <iostream>
  2. using namespace std;
  3. #include <typeinfo>
  4. //类模板与继承
  5. /*
  6. template<class T>
  7. class Base{
  8. public:
  9. T m;
  10. };
  11. //1. 当子类继承到父类是一个类模板时,子类在声明时,需要指出父类中T的数据类型。
  12. //class Son:public Base //错误
  13. class Son:public Base<int>
  14. {
  15. public:
  16. };
  17. void test01()
  18. {
  19. Son s; //如果指定了T是int,那么s就是占用4个字节。
  20. }
  21. */
  22. //2. 如果想灵活指定出父类中T的类型,子类也需要变成类模板。
  23. template<class T>
  24. class Base{
  25. public:
  26. T m; //short m
  27. };
  28. template<class T1,class T2>
  29. class Son:public Base<T2>{
  30. public:
  31. Son()
  32. {
  33. cout << "T1的数据类型" << typeid(T1).name() << endl;
  34. cout << "T2的数据类型" << typeid(T2).name() << endl;
  35. }
  36. T1 obj; //int obj
  37. };
  38. void test02()
  39. {
  40. Son<int,short> s;
  41. }
  42. int main(int argc,char *argv[])
  43. {
  44. //test01();
  45. test02();
  46. return 0;
  47. }

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/769094
推荐阅读
相关标签
  

闽ICP备14008679号