虚函数的多态性机制分析.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
虚函数的多态性机制分析   摘要:在面向对象程序设计中,继承性映射了现实世界中事物之间的层次现象,而多态性则是映射事物自身行为的多外延现象;虚函数可以实现不同的对象在收到相同的消息时,产生不同的动作。重载是同一对象在收到相同的消息时,产生不同的动作。该文对虚函数的多态性机制进行深入分析,提出用虚函数实现多态性的四项法则。   关键词:动态联编;虚函数;多态性   中图分类号:TP312文献标识码:A文章编号:1009-3044(2011)13-3089-03   The Analyze to Polymorphphism of Virtual Function   LI Qiang, WU Yuan   (Economic Department, South China Normal University ZC College, Guangzhou 512000, China)   Abstract: In Object-Oriented Programming,the Inheritance reflects things of herarchical phenomenon in real world,but thePolymorphphism reflects the phenomenon of external multi-appearance of things itself.The virtual function can occur distinct motion by receiving same message in distinct objects.Overloading can occur distinct motion by receiving same message in same objects.This paper analyses deeply to the Polymorphphism and proposes four rules about the realization of Polymorphphism.   Key words: dynamic co-compiling; virtual function; polymorphphism   1 面向对象程序设计的多态性   在C++中,把类看作类型,把以public方式继承的派生类看作是基类的子类型。从而产生了多态性,其主要表现形式是:   1) 派生类对象的类型不但可以是派生类,也可以是基类,也就是说,一个对象可以属于多种类型。   2) 基类的指针可以指向基类对象,也可以指向派生类对象;基类的引用可以引用基类对象,也可以引用派生类对象。即一个对象标识符可以属于多种类型,它可以标识多种对象。   3) 一个消息可以发送到基类对象,也可以发送到派生类对象,从而可能会得到不同的解释,引起不同的动作,产生不同的效果。   C++可以支持两种多态性:静态多态性和动态多态性。我们知道,程序在运行前的编译连接阶段会根据源程序中的要调用的函数名用物理地址取而代之,我们称为静态联编,它支持的多态性称为静态多态性。在调用重载函数时,编译程序在编译阶段就确定了应该调用哪个函数。动态联编是在程序运行当中才完成的联编。比如,一个具有多态性的函数运行当中得到了具体对象,该函数这时才可能与某个正确的函数联系起来。动态联编支持的多态性称为动态多态性。   虚函数机制就是用来实现动态多态性的利器,我们可以通过基类的指针或引用来访问派生类中对基类重定义的成员函数,之就是运行时多态即动态多态性。   2 虚函数   有了虚函数,就使得动态联编成为可能,就可以在基类和派生类之间实现动态多态性。   我们在程序代码中使用virtual来指明某个成员函数是虚函数。   虚函数的定义格式:   virtual 〈返回值类型〉〈函数名〉(〈形式参数表〉)   {      }   其中,virtual是关键字,它定义该函数是虚函数。   如果编程者把某类中的一个或多个成员函数定义为虚函数,那么该成员函数在派生类中必有不同的实现代码。包含虚函数的基类生成派生类时,派生类重新定义该虚函数为自己的目的服务。假设一个类函数的调用并不能在编译时刻被静态地确定,而只能是在运行时刻被确定,即编写代码的时候并不能确定被调用的是基类的函数还是哪个派生类的函数,必须由系统在运行当中动态地判定,那么就要选择虚函数机制了。一句话,虚函数机制是动态联编的基础,是实现动态多态性的前提。   例1 以下程序演示静态联编,该程序虽能顺利通过编译,但却得到错误的结果。   //程序 例子.cpp   //静态联编的问题   #include   c

文档评论(0)

yingzhiguo + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:5243141323000000

1亿VIP精品文档

相关文档