C++面向对象程序设计 教学课件 栗青生 第6章.pdfVIP

C++面向对象程序设计 教学课件 栗青生 第6章.pdf

  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文档。上传文档
查看更多
C++面向对象程序设计 第一章 本章导读 • 所谓多态性是指发出的消息被不同的对象 接受时会产生完全不同的行为。多态性是 面向对象程序设计的重要特性之一,多态 性机制不仅增加了面向对象软件系统的灵 活性,而且显著提高了软件的可重用性和 可扩充性。在C++中,C++中的多态性可以 分为四类:参数多态、包含多态、重载多 态和强制多态。运算符重载是对已有的运 算符赋予多重含义,使同一个运算符作用 于不同类型的数据导致不同类型的行为。 本章要点 • 理解静态联编机制和动态联编机制 • 虚函数的使用 • 运算符重载函数的规则及其两种形式 • 单目运算符重载和双目运算符重载 第六章 目录 • 6.1 多态性 • 6.2 虚函数 • 6.3 纯虚函数和抽象类 • 6.4 运算符重载 • 6.5 运算符重载函数的形式 • 6.6 程序举例 • 6.7 本章小结 • 习题六 6.1 多态性 • 6.1.1通用多态和专用多态 • 6.1.2多态的实现 6.1.1通用多态和专用多态 • C++中的多态性可以分为四类:参数多态、包含 多态、重载多态和强制多态。前面两种统称为通 用多态,而后面两种统称为专用多态。 • 参数多态与类属函数和类属类相关联,本书中讲 到的函数摸板和类摸板就属于这种类型。由类摸 板实例化的各个类都有相同的操作,而操作对象 的类型却可以各不相同。同样地,由函数摸板实 例化的各个参数也都具有相同的操作,但这些函 数的参数类型也是可以各不相同的。 • 包含多态是研究类族中定义于不同类中的 同名成员函数的多态行为,主要是通过本 章中要讲的虚函数来实现的。 • 重载多态如函数重载、运算符重载等。前 面我们讲的普通函数及类的成员函数的重 载都属于这一类型。运算符重载我们会在 以后的学习中学到。 • 强制多态是指将一个变元的类型加以变化, 以符合一个函数或操作的要求。例如,加 法运算符在进行浮点数与整型数相加时, 要进行类型强制转换,要把整型数转换为 浮点数之后再进行相加。 6.1.2多态的实现 • C++语言支持两种多态性:编译时的多态和 运行时的多态。多态的实现和联编这一概 念有关。所谓联编就是把函数名与函数体 的程序代码连接在一起的过程。联编又可 分为静态联编和动态联编。系统用实参与 形参进行匹配,对于同名的重载函数便根 据参数上的差异进行区分,然后进行联编, 从而实现多态。 • 1.静态联编 • 静态联编就是在编译阶段完成的联编。编 译时的多态就是通过静态联编实现的。 • 2.动态联编 • 动态联编就是在程序运行阶段完成的联编。 动态联编是运行阶段完成的联编。 • 运行时的多态就是用动态联编来完成的, 当程序调用到某一函数名时,才去寻找和 连接其程序代码。对面向对象程序而言, 就是当对象接受到某一消息时,才去寻找 和连接相应的方法。 • 静态联编要求在程序编译时就知道调用函数的全 部信息,因此,这种联编类型的函数调用速度很 快,效率很高,但缺乏灵活性;而动态联编则恰 好相反,采用动态联编时,一直要到程序运行时 才能确定调用哪个函数,它降低了程序的运行效 率,但提高了程序的灵活性。纯粹的面向对象程 序语言因为其执行机制是消息传递,所以只能采 用动态联编的方式。这就给基于C语言的C++带来 了麻烦。因为为了保持C语言的高效性,C++仍是 编译型的,仍采用静态联编。 • 好在C++的设计者想出了“虚函数”机制, 利用虚函数机制,C++可部分地采用动态联 编。也就是说,C++实际上是采用了静态联 编和动态联编相结合的联编方法。运行时 的多态性主要是通过虚函数来实现的。

您可能关注的文档

文档评论(0)

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

1亿VIP精品文档

相关文档