关于C++虚函数底层实现机制的研究与分析.pdfVIP

  • 3
  • 0
  • 约1.29万字
  • 约 3页
  • 2019-10-26 发布于广东
  • 举报

关于C++虚函数底层实现机制的研究与分析.pdf

维普资讯 第29卷 第 10期 计算机工程与设计 2008年5月 Vo1.29 NO.10 ComputerEngineeringandDesign M ay2008 关于c++虚函数底层实现机制的研究与分析 和 力, 吴丽 贤 (韩山师范学院数学与信息技术系,广东 潮州521041) 摘 要:多态性是 c++最具特色的性质之一,c++中实现 多态的一个重要途径是动态绑定,而动态绑定的基础是虚函数 。通 过反 汇编手段深入分析了c++中虚 函数的底层实现机制,给出了在单继承下和多继承下虚函数的实现模型,并结合实例给出 了通过动态绑定调用虚函数的额外花费,分析了对函数调用效率的影响,并就如何正确有效地使用虚函数提出了一些策略。 关键词:虚函数;多态性;动态绑定;底层实现机制;反汇编 中图法分类号:TP312 文献标识码:A 文章编号:1000.7024(2008)10.2705.03 Studyandanalysisonunderlyingmechanism ofvirtualfunctioninC++ HELi. W ULi—xian (Depa~mentofMathematicsandInformationTechnology,HanshanTeachersCollege,Chaozhou521041,China) Abstract:Polymorphism isoneofthemostcharacteristicpropertiesofC++. Dynamicbindingisanimportantapproachtoactualize polymorphism inC++.anditsfoundationisvirtualfunction.Theun derlyingmechna ism ofvirtualfunctioninC++isna alyzedwithdi· sassembling.Accordingtodifferentkindsofinheritancerelationship,hteun derlyingmodelofvirtualfunctionispresented、Th eextra costofvirtualfunctioncallsisgiven,anditsinfluenceonfunctioncallisdiscussedthroughexamples.Finally, somestrategiesraeput forwradtoutilizeeffectivelyvirtualfunction. Keywords:virtualfunction;polymorphism ;dynamicbinding;un derlyingmechnaism ;disassembling 编译器会插入许多额外的代码,以支持语言层面上的多态性 0 引 言 得 以实现 。 多态性允许对派生类对象通过父类指针调用成员函数 下面给 出程序 test1.cpp,在Visualc++中编译 。 时,执行正确的代码,被认为是c++等面向对象程序设计语言 //test1.cpp 的精髓 ,但也是最让程序员感到困惑的部分 “。。在 c++中,实 #includeiosrteam、ll 现多态 的一种重要途径是动态绑定,而动态绑定的基础是虚 classbase{ 函数0 所 以了解虚函数的底层实现机制 ,对于在程序中正确

文档评论(0)

1亿VIP精品文档

相关文档