- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
delphi中的多态性详解(Polymorphism in Delphi)
delphi中的多态性详解(Polymorphism in Delphi)
Polymorphism in Delphi
2007-04-15 at 12:32, in the talk about polymorphism - concept description, the essence of polymorphism is to assign pointers to subclasses to pointers to the parent class. So why is this assignment permissible or is it safe? Conversely, OK? How is the dynamic binding of virtual functions implemented? These questions will be answered in this article.
Suppose you have the following code (described in Object Pascal language):
T1 = class
Private
Member1: integer;
Public
Function func1: Integer; virtual;
Function func2: Integer; virtual;
Function func3: Integer; virtual;
End;
T2 = class (T1)
Private
Member2: integer;
Public
Function func1: Integer; override;
Function func2: Integer; override;
End;
The end result is that the memory distribution of the instances of the T1 class is as follows (to illustrate the principle and does not necessarily mean that the compiler must be implemented as well):
______________ _________
| VPTR |------- | T1.func1 |
| member1 | | T1.func2 |
T1.func3, | |
Again
Among them, VPTR is a member pointer (called virtual pointer) that is automatically added by the compiler. There is only a virtual function or dynamic function or a pure virtual class will be added to the compiler member pointer, the pointer to a called virtual function table ( Object Pascal became a virtual method table, VMT memory area). The virtual function table holds the entry address for each virtual function.
The memory distribution of instances of the T2 class is as follows:
_______________ _____________
| VPTR |-------| T2.func1 |
| member1 | | T2.func2 |
| member2 | | T1.func3 |
The most ~~~~~~~~~~~~~
As you can see from the diagram, a subclass object occupies more space than a parent class object. Therefore, when the sub class type pointer assignment assigns the pointer type of the parent class (the so-called upward mapping), also point to the object of class type of memory space is the parent class type pointer
您可能关注的文档
- CAD 文本文档(CAD text document).doc
- CAD中各种符号的输入(The input of various symbols in CAD).doc
- CAD二次开发及其在矿山测绘工程中的应用(CAD secondary development and its application in mine surveying and mapping engineering).doc
- CAD三维画图教程(CAD 3d drawing tutorial).doc
- cad 快捷键(Cad shortcuts).doc
- CAD全部快捷键(CAD all shortcuts).doc
- CAD全套键盘输入命令(CAD complete keyboard input command).doc
- cad全面的快捷方式(Cad comprehensive shortcuts).doc
- CAD命令及用法详解(CAD command and usage details).doc
- CAD命令表(CAD command table).doc
- DELPHI存取JPEG、BMP图像到数据库完整解决方案(DELPHI access JPEG, BMP image to database complete solution).doc
- Delphi对INI文件进行读、写操作(Delphi read and write the INI file).doc
- DELPHI实现图像的镜像(DELPHI implements the image image).doc
- Delphi编程的图像显示技巧(Delphi programming image display technique).doc
- Delphi格式化字符串的方法(Delphi format string method).doc
- DELTA 听力部分生词汇编(The glossary of new words in DELTA listening).doc
- C语言源程序(C language source program).doc
- dfgdf(dfgdf).doc
- dhdh(dhdh).doc
- Diablo2合成与符文详解(Diablo2 synthesis and runes).doc
最近下载
- 二年级语文上单元归类复习.pdf VIP
- ASME B18.29.1-2010 螺旋线圈螺纹插入-自由运行和螺纹锁定(英寸系列).pdf VIP
- 电力行业检查标准清单(发电部分).docx VIP
- 2025至2030年中国四川省渔业行业发展趋势预测及投资规划研究报告.docx
- 新苏教版六年级科学上册试卷1-5单元测试卷含答案5单元全册打包期中期末复习.docx VIP
- 危大工程与超过一定规模的危大工程清单(住建部2018第31号文).pdf VIP
- 2025小学科学学科教师基本功大赛试题(理论部分附答案).docx VIP
- 钢筋混凝土化粪池22S702.docx VIP
- L23R401 城镇热水管道直埋敷设图集.docx
- GMP文件管理规程(新版).pdf VIP
文档评论(0)