- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 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++实际上是采用了静态联
编和动态联编相结合的联编方法。运行时
的多态性主要是通过虚函数来实现的。
您可能关注的文档
- C++面向对象程序设计 曹静 教学课件 第01章 面向对象程序设计概述.pdf
- C++面向对象程序设计 曹静 教学课件 第02章 C++语言基础.pdf
- C++面向对象程序设计 曹静 教学课件 第04章 类与对象.pdf
- C++面向对象程序设计 曹静 教学课件 第10章 项目设计——校园信息管理系统.pdf
- C++面向对象程序设计 教学课件 陈维兴 陈昕 C++邮电 2.pdf
- C++面向对象程序设计 教学课件 陈维兴 陈昕 C++邮电 3.pdf
- C++面向对象程序设计 教学课件 陈维兴 陈昕 C++邮电 4.pdf
- C++面向对象程序设计 教学课件 陈维兴 陈昕 C++邮电 5.pdf
- C++面向对象程序设计 教学课件 李兰_ 第2章.pdf
- C++面向对象程序设计 教学课件 李兰_ 第3章.pdf
- C++面向对象程序设计 教学课件 栗青生 第8章.pdf
- C++面向对象程序设计 教学课件 张德慧 周元哲 主编 第12章 异常处理.pdf
- C++面向对象程序设计 教学课件 张德慧 周元哲 主编 面向对象程序设计 实验指导书(张德慧).pdf
- C++面向对象程序设计 教学课件 朱战立 张玉祥 C++1.pdf
- C++面向对象程序设计(第二版) 教学课件 曹静 第八章 数据流与文件的输入输出.pdf
- C++面向对象程序设计(第二版) 教学课件 曹静 第二章 C++语言基础.pdf
- C++面向对象程序设计(第二版) 教学课件 曹静 第九章 异常处理.pdf
- C++面向对象程序设计(第二版) 教学课件 曹静 第六章 多态性与虚函数.pdf
- C++面向对象程序设计(第二版) 教学课件 曹静 第三章 C++程序的结构.pdf
- C++面向对象程序设计(第二版) 教学课件 曹静 第十章 项目设计——校园信息管理系统.pdf
最近下载
- 2024版房屋抵押贷款合同范本.docx VIP
- 基于反作用飞轮和磁力矩器的卫星姿态控制系统分析-analysis of satellite attitude control system based on reaction flywheel and magnetic torque device.docx VIP
- 地贫筛查中的血红蛋白电泳.pptx VIP
- 光电开关HPX-AG系列使用说明书.PDF VIP
- 精神科患者风险的管理.pptx VIP
- 保护女职工权益知识竞赛题库50题(答案).docx VIP
- 盖板涵施工监理细则.pdf VIP
- 迅达3300调试汇总.doc VIP
- (高清版)B-T 19843-2022 工业通风机 射流风机性能试验.pdf VIP
- 冰美人淘宝直播数据复盘.xlsx VIP
文档评论(0)