C++虚析构函数
2014-05-18 16:33
169 查看
class A { public: A() { cout << "A ctor." << endl; } virtual ~A() { cout << "A dtor." << endl; } }; class B: public A { public: B() { cout << "B ctor." << endl; } ~B() { cout << "B dtor." << endl; } }; int main() { A *ptr = (A *)new B; delete ptr; return 0; }
父类指针指向new出来的子类对象的时候,如果父类的析构函数不是虚函数,则在delete的时候不会调用子类的析构函数。
父类析构函数不是虚函数的时候,运行结果:
A ctor.
B ctor.
A dtor.
请按任意键继续. . .
父类析构函数式虚函数的时候,运行结果:
A ctor.
B ctor.
B dtor.
A dtor.
请按任意键继续. . .
相关文章推荐
- C++中的虚析构函数
- 跟风C++主题年:从虚析构函数想到的内存基本模型
- C++虚函数的实现细节、虚析构函数 汇编解析
- C++虚析构函数
- C++继承中的虚析构函数
- c++基类不为虚析构函数的一个风险
- c++ virtual 虚析构函数 资源释放的讨论
- C++继承中构造函数、析构函数调用顺序及虚析构函数
- C++中 虚函数 虚析构函数的作用
- C++中的虚析构函数
- c++继续学习 virtual Destruct function (虚析构函数)
- 关于C++虚析构函数
- c++面向接口编程,虚函数,虚析构函数
- 关于c++虚析构函数
- C++中的虚析构函数
- C++中,什么是纯虚函数,什么是抽象类,什么是虚析构函数
- C++中的虚析构函数
- c++只在基类中用虚析构函数的原因
- C++的虚析构函数
- C++虚析构函数