大家好,我是 DongGu ,是一名软件工程专业大二的学生,写博客一方面是为了记录自己的学习过程,把自己犯的错误进行分享。但由于水平有限,博客中难免会有一些错误出现,有纰漏之处恳请各位大佬不吝赐教!有任何问题可以评论 或者 ___>
QQ联系(1521839703)
个人博客 站也搭好啦: dongguxy.top
1. 关于虚析构的认识
- 我们都知道, 有了虚函数,就有了虚函数表,有了虚函数表,就会继承父类的虚函数表的内容,如果子类没有重写父类的虚函数方法,那么该函数地址不会变化,如果写了,那么就会更新虚函数表的函数地址,
- 然后我们又想,如果父类实现虚析构函数,子类没有实现怎么办我们要记住,如果父类有虚函数,系统会给我们实现一个默认构造函数,默认析构函数,默认拷贝构造函数,后面会讲,
- 调用虚函数的时候,就会读到虚函数表的地址,再通过偏移量去调用,因为虚函数表的函数位置是不变的,函数地址在编译前就确定了的
测试代码:
2. 虚函数
- 多重继承下的虚函数,一图以蔽之
3. 虚基类
- 虚继承父类,类中有虚函数
虚继承父类,父类有虚函数
测试代码
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!