- 4
- 0
- 约3.97千字
- 约 7页
- 2017-05-20 发布于北京
- 举报
C学习笔记-利用对象、引用、指针调用虚函数
C++学习笔记(13)——利用对象、引用、指针调用虚函数
虚函数实现原理说明:
??????? 在“C++学习笔记(12)——多态与虚函数?”中,每个类的大小比起所有成员数据多4个字节,表明有虚函数的类的大小还要加上一个紧缩的空指针类型的大小。这说明了该在包含虚函数的类中,编译系统自动加入了一些表明类型的信息。
当一个类中拥有虚函数时,编译系统将为该类创建一个数组VTABLE。VTABLE的元素是虚函数的地址,且同一虚函数的地址在基类和派生类的VTABLE中相对首位置的偏移是一样的。同时,编译系统还加入了相应的调用虚函数的代码。所有这些都是不需要程序员作的工作,由系统自动完成。在初始化该类对象时,将加入一个指向VTABLE的指针,这个指针一般称为VPTR。一般来说,VPTR位于该类对象的存储单元的最开始部位。
?????????????????????????? 这样,当VPTR被正确的初始化之后,便指向了该对象的VTABLE,从而在对象及其特定的虚函数定义间建立了联系。从虚函数调用的意义上来说,VPTR表明了类型信息,因为它使得调用与类型相符合。
?
??????? 本例(见下文)可以看到,不管类层次进行了多少扩充,对于已有类对象的操作都不必作出改动。从这一点来看,虚函数所体现的运行时多态,大大提高了软件的可扩充性。我们知道,系统的设计者在初期集中于整个系统框架的合理
您可能关注的文档
- CAD命令和常见问题处理2014.10.20.doc
- CAD以和天正电气命令快捷键大全.doc
- CAD图中文字的注写和修改1.doc
- CAD和VISIO转换插入结合使用技巧.doc
- CAD和燕秀快捷命令集合.doc
- CAD图纸中图形长度面积及图块数量的查询.docx
- CAD图纸批量打印–发布.docx
- CAD国标字体及标注设置.doc
- CAD坐标自定义及使用技巧.doc
- CAD坐标和修改工具.doc
- 2026-2026年度苏教版小学6六年级数学上册全册教案.docx
- 2026台州市中心血站公开招聘编制外工作人员1人考试参考题库及答案解析.docx
- 2027国家能源投资集团有限责任公司高校毕业生乡村振兴专项招聘笔试备考题库及答案解析.docx
- 2026年智能生产成本控制创新报告.docx
- 面向大学生的苏轼精神思政学习ppt模板.pptx
- 交通运输行业创新驱动发展战略心得体会.docx
- 2026年国际石油工程公司人员招聘笔试模拟试题及答案详解.docx
- 面向大学生的网络水军危害警示ppt模板.pptx
- 2026年下半年云南特殊教育职业学院公开招聘人员(4人)考试备考题库及答案解析.docx
- 2026常熟市公望小学公开招聘合同制工作人员1人考试参考题库及答案解析.docx
最近下载
- ISO140012026标准解读文件.pptx VIP
- ISO14001:2026全新培训教材.pptx
- ISO14001-2026与ISO14001-2015条款原文变化标识对照表(雷泽佳编制-2026A0).pdf VIP
- ISO14001-2026&ISO45001-2018内审知识测试试题及答案.pdf VIP
- ISO140012026&ISO450012018内审知识测试测试卷及答案.docx VIP
- 2026年广东省学法考试年度考试满分答案(考场三).doc VIP
- 2026年广东省学法考试年度考试满分答案(考场三2份答案).doc VIP
- 回流焊与波峰焊的区别贴片元件焊接23课件讲解.pptx
- 住院病案室病历遗失情况说明范文.docx
- 宣贯培训(2026年)《QCT 272-2025汽车用铝合金铸件技术条件》.pptx VIP
原创力文档

文档评论(0)