继承与多态(四):虚析构函数
来源:互联网 发布:光线跟踪算法 编辑:程序博客网 时间:2024/05/21 14:50
当指向派生对象的指针被Delete时,如果基类的析构函数是虚函数(应该如此),将执行正确的操作:调用派生类析构,调用基类析构。
class Mammal{public:Mammal(){ cout << "Mammal Constructor!" << endl; }virtual ~Mammal(){cout << "Mammal Destructor!" << endl;}//需要被继承的基类,析构函数都应该设置为虚函数,否则有可能无法析构基类virtual void speak() const{cout << "Mammal speak!" << endl;}};class Dog:public Mammal{public:Dog(){cout << "Dog Constructor!" << endl;}~Dog(){cout << "Dog Destructor!" << endl;}void speak() const{ cout << "Wang wang..." << endl; }};int _tmain(int argc, _TCHAR* argv[]){Mammal* ptr= new Dog();ptr->speak();if (ptr){delete ptr;ptr = nullptr;}}
输出:
Mammal Constructor!Dog Constructor!Wang wang...Dog Destructor!Mammal Destructor!请按任意键继续. . .
0 0
- 继承与多态(四):虚析构函数
- 【黑马程序员】继承与多态(四)
- 继承与多态(二):重写函数
- 继承与多态(五):虚复制构造函数
- 理解继承、虚函数与多态
- C++入门学习笔记(四)--继承与多态
- 二十七、继承(四) 多重继承、虚继承与虚基类、虚基类及其派生类构造函数
- (十)继承四(多继承)
- js函数(类)的继承机制的设计与实现(四)
- 黑马程序员:C#基础篇(四)抽象类、接口、继承与多态
- 虚函数与多继承
- 多继承与虚函数
- 多继承与虚函数
- maven实战(四)聚合与继承
- 继承与多态6:多态与虚函数
- 多态的实现方式,继承与模版函数
- 继承、接口、多态与构造函数的学习
- 深入浅出OOP(四): 多态和继承(抽象类)
- 数据结构与算法(2)——各种方法实现杨辉三角
- Java知识一
- 多项式加法,链表方法实现
- 世界名画陈列馆问题
- Linux_shell_正则表达式
- 继承与多态(四):虚析构函数
- 【poj1661】Help Jimmy
- 百度地图使用注意事项
- 算法复杂度分析
- 批处理 大小写转换
- QtPropertyBrowser简介
- Html5基础笔记
- Android中Socket通信之TCP与UDP传输原理
- PHP filter_input() 函数