码迷,mamicode.com
首页 > 其他好文 > 详细

虚析构函数

时间:2016-11-14 12:51:50      阅读:202      评论:0      收藏:0      [点我收藏+]

标签:ios   names   cst   turn   out   struct   析构   string   public   

#include <iostream>
#include <cstdio>
#include <string>
using namespace std;

class Base{
public:
    virtual ~Base(){
        cout<<"Base deconstruct func"<<endl;
    }
};

class Derive: public Base{
public:
    ~Derive(){
        cout<<"Derive deconstruct func"<<endl;
    }
};

int main()
{
    Derive *p = new Derive();
    delete p;
    //使用派生类指针指向派生类,会自动调用基类析构函数
    
    Base *p1 = new Derive();
    delete p1;
    //使用基类指针指向派生类,只有当基类析构函数定位为虚函数的时候,才会自动调用派生类析构函数,然后在调用基类的析构函数 与虚函数表有关

    system("pause");
    return 0;
}

  当然不一定要把所有的析构函数都设置成虚函数,因为会增加空间消耗。

虚析构函数

标签:ios   names   cst   turn   out   struct   析构   string   public   

原文地址:http://www.cnblogs.com/luntai/p/6061069.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!