当前位置:   article > 正文

第十一周阅读程序1:继承与派生类的构造函数和析构函数_继承与派生圆类程序设计题包含析构函数

继承与派生圆类程序设计题包含析构函数

问题及代码:

  1. #include <iostream>
  2. using namespace std;
  3. class Data
  4. {
  5. public:
  6. Data(int i):x(i)
  7. {
  8. cout<<"A";
  9. }
  10. ~Data()
  11. {
  12. cout<<"B";
  13. }
  14. private:
  15. int x;
  16. };
  17. class Base
  18. {
  19. public:
  20. Base(int i):b1(i)
  21. {
  22. cout<<"C";
  23. }
  24. ~Base()
  25. {
  26. cout<<"D";
  27. }
  28. private:
  29. int b1;
  30. };
  31. class Derived:public Base //Base为基类,Derived为派生类
  32. {
  33. public:
  34. Derived (int i,int j):Base(i),d1(j)
  35. {
  36. cout<<"E";
  37. }
  38. ~Derived()
  39. {
  40. cout<<"F";
  41. }
  42. private:
  43. Data d1;
  44. };
  45. int main()
  46. {
  47. Derived obj(1,2);
  48. return 0;
  49. }


运行结果:

学习心得:
调用 Dericed类的构造函数  首先调用Base基类的构造函数,所以 cout<<"C";
然后建立的对象中含有一个 Data类的数据成员,执行构造函数  cout<<"A";
然后才轮到Derived的构造函数 cout<<"E";
到return语句中 对构建的对象进行析构,先执行派生类的析构函数  cout<<"F";
在析构的同时,先析构了作为数据成员的Data类  cout<<"B"
然后执行基类的析构函数  cout<<"D";

 

知识点总结:

构造函数 先执行基类的,再执行派生类的

析构函数 先执行派生类的,在执行基类的

 

 

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

闽ICP备14008679号