(c++常问问题五)虚析构函数

当子类析构需要调用父类的析构函数,基类的析构函数必须设置为虚析构函数

 

//基类
class base
{
    base()
   {
     cout<<"base ";
   }

   virtual ~base()
   {
     cout<<"~base ";
   }
}

//派生类
class cat : public base
{
    cat ()
   {
     cout<<"cat ";
   }

   virtual ~cat ()
   {
     cout<<"~cat ";
   }
}

void main()
{
   cat* a = new cat();
   delete a;
}

//输出如下:
//base cat ~cat ~base(基类使用了虚析构)
//base cat ~cat(基类没使用虚析构)

 

posted @ 2016-01-28 23:54  Jensen抹茶喵  阅读(239)  评论(0编辑  收藏  举报