您的位置:首页 > 编程语言 > C语言/C++

c++ 虚析构函数

2011-10-19 11:31 246 查看
#include <iostream>

using namespace std;

class base

{

public:

base()

{

}

base(int _name)

{

name = _name;

malloc_buf = NULL;

}

/*这里的父类虚析构函数,是让子类的析构函数也是虚函数。在动态绑定时将执行实际类型的析构函数,以保证执行适当的析构。

一个场景是:父类的析构函数的虚析构,父类引用绑定子类对象或指针指向子类对象:如果delete该引用或指针,这个delete将执行子类的析构函数,

当然它也必将调用父类的析构。但是它绝对不是只调用父类的析构函数

*/

virtual ~base()

{

cout << "调用基类析构函数" << endl;

}

private:

int name;

char *malloc_buf;

};

class sub : public base

{

public:

sub(int _name)

{

name = _name;

}

~sub()

{

cout << "调用父类析构函数" << endl;

}

private:

int name;

};

int main()

{

sub* sb = new sub(1);

if(NULL != sb)

{

delete sb;

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: