C++ 为什么设置基类的析构函数为虚函数
来源:互联网 发布:idc销售网站源码 编辑:程序博客网 时间:2024/06/07 07:03
对象的析构函数调用顺序是从派生类到基类
那么如果基类的指针指向派生类的对象 还能正常的执行析构顺序吗
下面看一个类的声明
- class Subject
- {
- public:
- ~Subject();
- Subject();
- };
- class ConcreteSubject : public Subject
- {
- public :
- ConcreteSubject();
- ~ConcreteSubject();
- };
创建基类的指针 并删除该对象
- Subject * con = new ConcreteSubject();
- delete con;
结果显示只调用了基类的析构函数~Subject()
而派生类的析构函数~ConcreteSubject()没有调用
如果没有吧基类的析构函数设置为虚函数
那么是不会在执行时动态调用所指向对象的析构函数
则在运行时 对象没有被正常的释放 会产生一系列的内存问题
0 0
- C++ 为什么设置基类的析构函数为虚函数
- C++ 为什么设置基类的析构函数为虚函数
- C/C++基类的析构函数为什么要为虚函数
- 为什么基类的析构函数为虚函数
- 构造函数为什么不能为虚函数 & 基类的析构函数为什么要为虚函数
- 析构函数为什么设置为虚函数
- 为什么基类的析构函数必须为虚函数的原因-个人理解
- 为什么基类的析构函数定义为虚函数?
- 为什么基类的析构函数要设为虚函数
- 为什么基类的析构函数声明为虚函数?
- 为什么基类的析构函数定义为虚函数
- C++中为什么有时基类的析构函数必须写为虚函数
- c++(重载、覆盖、隐藏)&&什么情况下,类的析构函数应该声明为虚函数?为什么?
- 为什么要将基类的析构函数声明为虚函数
- C++基类的析构函数为什么设置成虚函数
- 为什么要把父类的析构函数设置为virtual
- 为什么把c++类的析构函数声明为虚函数?
- 析构函数为什么要设置为virtual
- PushbackInputStream
- HashMap,LinkedHashMap,TreeMap,HashTable,ConcurrentHashMap,ConcurrentSkipListMap 关于k,v是否为null,以及输出排序
- 2014年终总结回顾与2015年工作总结
- Linux命令之at CTRL+D使AT命令生效
- NPOI操作EXCEL----------NPOI基础01
- C++ 为什么设置基类的析构函数为虚函数
- Angularjs 源码分析-setupModuleLoader
- Android实现竖着的滑动刻度尺效果,选择身高(竖向的)Android实现滑动刻度尺效果,选择身高体重和生日------浅谈Andorid开发中的MVP模式
- java中什么是bridge method(桥接方法)
- Android Fragment 生命周期
- YTU 1001: A+B Problem
- 6.以表格单据式单表为模板定制模块:订单信息维护
- Android Activity为什么要细化出onCreate、onStart、onResume、onPause、onStop、onDesdroy这么多方法让应用去重载
- 有关**迭代学习**控制的一些基本概念