Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1564296
  • 博文数量: 237
  • 博客积分: 5139
  • 博客等级: 大校
  • 技术积分: 2751
  • 用 户 组: 普通用户
  • 注册时间: 2008-11-18 14:48
文章分类

全部博文(237)

文章存档

2016年(1)

2012年(4)

2011年(120)

2010年(36)

2009年(64)

2008年(12)

分类: C/C++

2011-04-13 13:11:14

class A
{
public:
        ~A() { cout<<”A destruct”<
};
  
class AA : public A
{
public:
        ~AA() { cout<<”AA destruct”<
};
  
int _tmain(int argc, _TCHAR* argv[])
{
        A * a = new AA;
        delete a;
}

运行的结果是:
A destruct

如果将class A的析构函数改为: virtual ~A()
运行的结果为:
AA destruct
A destruct

可见,
把基类的析构函数定义为虚函数可以避免不必要的内存泄漏。 什么时候必须把虚函数声明为虚函数,查看Effective c++, M14.



阅读(703) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~