关于继承中的析构函数

class ClxBase{
      public:
      ClxBase() {};
      ~ClxBase() {cout << "Output from the destructor of class ClxBase!" << endl;};
       virtual void DoSomething() { cout << "Do something in class ClxBase!" << endl; };
 };
 
  class ClxDerived : public ClxBase{
     public:
     ClxDerived() {};
     ~ClxDerived() { cout << "Output from the destructor of class ClxDerived!" << endl; };
     void DoSomething() { cout << "Do something in class ClxDerived!" << endl; };
 };
 
  int main()
  {

      ClxDerived *p =  new ClxDerived;    //情况1

      //ClxBase *p =  new ClxDerived;      //情况2

     //p->DoSomething();

     delete p;

     return 0;

  }


(gcc编译)如果是情况1,结果为:

Output from the destructor of class ClxDerived!
Output from the destructor of class ClxBase!


如果是情况2,结果为:

Output from the destructor of class ClxBase!

解析:其实我也不是很能说得清楚,先留着,知道这么个执行结果,以后明白了再补上。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值