子类调用父类构造函数和析构函数的顺序

#include   <iostream.h>

  class   B

  {

  public:

  B(); //与类同名,构造函数

  B(int   i);

  ~B(); //~析构函数

  void   Print()   const;//const,常量成员,不能修改

  private:

  int   b;

  };

  B:B()

  {

  b=0;

  cout < < "B 's   default   constructor   called.   " < <endl;

  }

  B::B(int   i)

  {

  b=i;

  cout < < "B 's   constructor   called.   " < <endl;

  }

  B::~B()

  {

  cout < < "B 's   destructor   called.   " < <endl;

  }

  void   B:Print()   const

  {

  cout < <b < <endl;

  }

  class   C:public   B

  {

  public:

  C();

  C(int   i,int   j);

  ~C();

  void   Print()   const;

  private:

  int   c;

  };

  C::C()

  {

  c=0;

  cout < < "C 's   default   constructor   called.   " < <endl;

  }

  C::C(int   i,int   j):B(i)

  {

  c=j;

  cout < "C 's   constructor   called.   " < <endl;

  }

  C::~C()

  {

  cout < < "C 's   destructor   called.   " < <endl;

  }

  void   C::Print()   const

  {

  B::Print();

  cout < <c < <endl;

  }

  void     main()

  {

  C   obj(5,6);

  obj.Print();

  }

  输出:

  B 's   constructor   called.

  C 's   constructor   called.

  5

  6

  C 's   destructor   called.

  B 's   destructor   called.

  

  构造函数调用父类-》子类;析构函数调用子类-》父类

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值