博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
虚析构函数
阅读量:5024 次
发布时间:2019-06-12

本文共 446 字,大约阅读时间需要 1 分钟。

#include
using namespace std;class father{public: ~father(){cout<<"bye from father"<

程序行结果为  by from father

也就是没有执行 bye from son

当通过基类的指针删除派生类对象时,通常情况下只调用基类的析构函数,但是当删除一个派生类时,应该先调用派生类的析构函数,然后调用基类的析构函数。

当然并不是把所有类的析构函数都写成虚函数,因为当类里面有虚函数时 编译器会给类添加一个虚函数表,里面用来存放虚函数指针,这样就会增加类的存储空间。所以只有当一个类被用作基类的时候,才把析构函数写成虚函数。

解决方法为 将father 里面的析构函数声明为虚函数 即

virtual ~father(){cout<<"bye from father"<

 

转载于:https://www.cnblogs.com/guoyu1024/p/9068044.html

你可能感兴趣的文章
Hive时间函数笔记
查看>>
clojure-emacs-autocomplete
查看>>
一个自己写的判断2个相同对象的属性值差异的工具类
查看>>
10 华电内部文档搜索系统 search03
查看>>
[HIHO1149]回文字符序列(dp)
查看>>
[HDU1402]A * B Problem Plus(FFT)
查看>>
[CF803C] Maximal GCD(gcd,贪心,构造)
查看>>
逆时针旋转的矩阵变换
查看>>
第10周15/16/17
查看>>
【数据库】SQL两表之间:根据一个表的字段更新另一个表的字段
查看>>
四六级作文常见错误解析(转载)
查看>>
Tomcat
查看>>
./是当前目录 ../是当前的上一级目录。上上级就是../../一般绝对路径时候常用...
查看>>
linux支持FTP和SFTP服务【1】
查看>>
树的递归与非递归遍历方法
查看>>
每天一个Linux命令(6):rmdir命令
查看>>
oracle连接的三个配置文件(转)
查看>>
Vim配置文件(Vimrc)
查看>>
RecyclerView 局部刷新(获取viewHolder 去刷新)
查看>>
PHP表单(get,post)提交方式
查看>>