在继承中,基类的析构函数需要定义为虚析构函数数否则:

(1)当派生类对象经由一个base类指针删除时,而这个base类的析构函数不是虚函数时,其结果是未定义的。

(2)这样做会导致derived类部分的成员没有被销毁,即造成局部销毁的对象。

(3)从而造成资源泄漏,败坏之数据结构,在调试器上浪费去多时间。

记住:

(1)带多态性质的base class 应该声明一个virtual析构函数,如果base class带有任何的虚函数,那么应该声明虚析构函数。

(2)一般析构函数的调用是。最深层次的析构函数被调用,然后编译器会沿着继承的反方向,在子类的析构函数中调用父类的

析构函数

当base class 不是作为基类派生来用时,就最好不要讲析构函数设置为虚函数吗,例如string 各种容器。

(1)首先欲实现虚函数,对象必须包含某些信息,即vptr,指向虚函数表的指针。会加大对象内存

(2)不方便程序的移植。(例如移植到C语言实现的平台上)。

最新文章

  1. VTID配置
  2. java Iterator Fail-fast机制
  3. inux下文件权限设置中的数字表示权限,比如777,677等,这个根据什么得来的
  4. [HDOJ2717]Catch That Cow
  5. phpMyAdmin 跨站脚本漏洞
  6. mysql 简单的增删改查语句
  7. 基于Hadoop技术实现的离线电商分析平台(Flume、Hadoop、Hbase、SpringMVC、highcharts)
  8. Java数据结构与算法(21) - ch09红黑树(RB树)
  9. JS 中 Class - 类创建
  10. iOS 创建一个在退出登录时可以销毁的单例
  11. 关于今天esp8266运行失控问题和oled与串口共存尝试成功的总结
  12. JAVA_SE基础——25.面向对象练习
  13. android4.2添加重启菜单项
  14. Java知多少(39)interface接口
  15. JFinal中文件上传后会默认放置到WebContent的upload包下,但是tomcat会自动重启,当我们再次打开upload文件夹查看我们刚刚上传的文件时,发现上传的文件已经没有了。
  16. 分享一套简单的CodeSmith三层模板
  17. jQuery的attr方法处理checkbox的问题
  18. Insert Delete GetRandom O(1)
  19. go语言从零学起(一) -- 文档教程篇
  20. Workflow_工作流的基本元素(概念)

热门文章

  1. 你干啥的?Lombok
  2. ES之基本数据类型之间的显示转换和隐式转换
  3. 安卓自定义View教程目录
  4. FPGA开发中的脚本语言
  5. spring中junit 提示Failed to load ApplicationContext
  6. SEO 第一章
  7. HttpClient 接口调用
  8. MVC之在实例中的应用
  9. Vue.js Extension Pack 和 jsconfig.json 可以定位跳转到@开头的路径等自定义路径
  10. 数据库sql语句limit区别