虚析构函数
2011-11-24 13:38
120 查看
#include <iostream>
#include <string>
using namespace std;
class Base{
public:
virtual ~Base(){cout<<"Base destrutor"<<endl;} ///虚析构函数
/*再添加virtual的情况下,
Base* q = new Deriv();
delete q;
如基类指针指向派生类,那么删除基类指针的时候将调用派生类指针和基类指针。
*/
};
class Deriv: public Base{
public:
~Deriv(){cout<<"Deriv destrutor"<<endl;}
};
class C: public Deriv{
~C(){ cout<<"C destrutor"<<endl;}
};
int main()
{
Base* p = new Base();
delete p;
Base* q = new Deriv();
delete q;
Deriv* t = new C();
delete t;
}
#include <string>
using namespace std;
class Base{
public:
virtual ~Base(){cout<<"Base destrutor"<<endl;} ///虚析构函数
/*再添加virtual的情况下,
Base* q = new Deriv();
delete q;
如基类指针指向派生类,那么删除基类指针的时候将调用派生类指针和基类指针。
*/
};
class Deriv: public Base{
public:
~Deriv(){cout<<"Deriv destrutor"<<endl;}
};
class C: public Deriv{
~C(){ cout<<"C destrutor"<<endl;}
};
int main()
{
Base* p = new Base();
delete p;
Base* q = new Deriv();
delete q;
Deriv* t = new C();
delete t;
}
相关文章推荐
- 什么时候需要虚析构函数
- 虚析构函数
- 虚函数,虚析构函数,纯虚函数,抽象类
- 面向对象技术,多态,重载,静态联编与动态连编,虚函数,抽象类,虚析构函数
- 虚析构函数(√)、纯虚析构函数(√)、虚构造函数(X)
- 虚析构函数(√)、纯虚析构函数(√)、虚构造函数(X)
- c++ virtual 虚析构函数 资源释放的讨论
- C++继承中构造函数、析构函数调用顺序及虚析构函数
- 虚析构函数作用,虚构造函数用法(转)
- 虚析构函数与非虚析构函数问题!
- 虚析构函数存在的理由
- 虚析构函数解析
- 什么是否声明为虚析构函数 什么时候不声明为虚析构函数
- 虚析构函数、虚函数
- 虚析构函数
- c++复习基础要点03 虚析构函数、虚函数表
- C++继承中的虚析构函数
- 关于虚析构函数
- 为什么要用虚析构函数
- 只有虚析构函数没有虚构造函数