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) |