virtual 析构函数作用
来源:互联网 发布:网络机柜品牌 编辑:程序博客网 时间:2024/06/04 19:19
析构函数不使用virtual的情况:
class base{public:base(){cout<<"construct base"<<endl;}~base(){cout<<"destroy base"<<endl;}};class derived:public base{public:derived(){cout<<"construct derived"<<endl;}~derived(){cout<<"destroy derived"<<endl;}};int main(){derived* d = new derived;delete d;cout<<endl;base* b = new derived;delete b;return 1;}
输出:
析构函数使用virtual的情况:
class base{public:base(){cout<<"construct base"<<endl;}virtual ~base(){cout<<"destroy base"<<endl;}};class derived:public base{public:derived(){cout<<"construct derived"<<endl;}~derived(){cout<<"destroy derived"<<endl;}};int main(){derived* d = new derived;delete d;cout<<endl;base* b = new derived;delete b;return 1;}
输出:
总结:
在多态中,不使用virtual时,子类在释放时不会调用父类的析构函数,会造成内存泄露。
0 0
- virtual 析构函数作用
- virtual析构函数的作用?
- virtual析构函数的作用?
- virtual析构函数(作用)
- virtual析构函数的作用
- virtual析构函数的作用?
- 析构函数 private 、virtual的作用
- 析构函数 private 、virtual的作用
- virtual 析构函数的作用
- virtual析构函数的作用?
- 析构函数 private 、virtual的作用
- 【C++基础 08】virtual析构函数的作用
- 析构函数前加virtual关键字的作用?
- virtual 析构函数
- Virtual 析构函数
- virtual 析构函数
- virtual+析构函数
- virtual析构函数
- java面试遇到问题二 ------java编程语言的特点
- python 笔记4-- 函数式编程
- 基础数据结构--线性表实现
- WPF基础知识
- swift 类继承
- virtual 析构函数作用
- iOS开发脚踏实地学习day10-PickerView
- 自定义View(三) switch开关按钮 ViewDragHelper的使用初级
- Smack 4.1.x升级指南
- 处理大数字BigInteger与BigDecimal
- 如何避免在Block里用self造成循环引用
- JavaScript简史和概述
- 内连接,外连接,交叉连接--数据库查询语句学习
- Android禁止横屏竖屏切换