当前位置:   article > 正文

模板类派生普通类_模板类中参数类型有好几种,该如何派生普通类

模板类中参数类型有好几种,该如何派生普通类
  1. #include <iostream>
  2. using namespace std;
  3. template<typename T>
  4. class A
  5. {
  6. public:
  7. A(T a)
  8. {
  9. this->a = a;
  10. }
  11. void printA()
  12. {
  13. cout<<"a:"<<a<<endl;
  14. }
  15. protected:
  16. private:
  17. T a;
  18. };
  19. //模板派生是需要具体化模板类 c++编译器需要知道 父类的数据类型具体是什么样的(派生类首先调用父类的构造函数)
  20. //=====》要知道父类所占内存大小是多少,只有数据类型固定下来,才知道如何分配内存
  21. class B:public A<int>
  22. {
  23. public:
  24. B():A(1)
  25. {
  26. this->a = 10;
  27. }
  28. void printA()
  29. {
  30. cout<<"a:"<<a<<endl;
  31. }
  32. protected:
  33. private:
  34. int a;
  35. };
  36. class B2:public A<float>
  37. {
  38. public:
  39. B2():A(1.2)
  40. {
  41. }
  42. protected:
  43. private:
  44. float c;
  45. };
  46. //类模板做函数参数
  47. void UseA(A<float> &a)
  48. {
  49. a.printA();
  50. }
  51. int main()
  52. {
  53. B b;
  54. b.printA();
  55. b.A::printA();
  56. system("pause");
  57. return 0;
  58. }

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

闽ICP备14008679号