- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实例11:编写一个学生和教师数据输入和显示程序。 学生数据包括:编号、姓名、班号和成绩,教师数据包括:编号、姓名、职称和部门。 要求:将编号、姓名输入和显示设计成一个类person,并作为student和teacher的基类。 实例12:编写一个程序。有个汽车类veh,它具有一个需传递参数的构造函数,类中的数据成员车轮个数wheels和车重weight放在保护段中;小车类car是它的私有派生类,其中包括承载人数passn;卡车类truck是veh的私有派生类,其中包含承载人数passn和载重量payload。 实例:猴子选猴王程序。 要求:⑴ 猴子数从键盘输入;⑵ 每数到13该猴子出列;⑶ 输出出列猴子的编号;⑷ 当圈中猴子剩2只时,数1的猴子为猴王,输出猴王的编号;⑸ 用向量表实现。 利用向量操作方法实现的程序清单: 第七章 多态性和虚函数 学习目标:掌握C++多态性的含义以及虚函数的使用方法 学习重点:多态性的建立和虚函数的使用 学习难点:多态性的理解 学习内容: 7.1 多态性 7.2 虚函数 §7.1 多态性 一、多态性的表现形式 多态性表现为编译时的多态性和运行时的多态性。 1. 编译时的多态性 所谓编译时的多态性是指程序在静态联编时表现的多态性。 例如:下列程序演示了静态联编的程序调用方式。 Result1: 0 Result2: 375 Result3: 375 Result4: 0 思考:为什么“cout”Result4: “q.area()endl;”输出结果为0,而不是375? 虽然它是rec的别名,但由于q的类型是point,因此,根据赋值兼容性原则,其调用的仍然是point中的成员函数area()。 2. 运行时的多态性 所谓运行时的多态性是指程序在动态联编(即运行)时表现出的多态性。 注意:派生类对象的地址可以赋值给基类的指针。 具有多态性的基类函数前加上关键词:“virtual”即可使其具有动态多态性,该函数称为“虚函数”。 特别地:基类的虚函数,其派生类同名、同返回值类型、同参数个数、同参数类型的函数同样是虚函数。 §7.2 虚函数 一、虚函数的定义 格式:virtual 数据类型 函数名(形参表); 说明:⑴ 虚函数不能是静态函数;⑵ 如果基类定义有虚函数,则其派生类同名、同返回值类型、同参数个数、同参数类型的函数同样是虚函数(该函数前可以省略virtual) 。 二、虚函数实现多态性的条件 虚函数实现多态性的条件: ⑴ 类之间的继承关系满足赋值兼容性规则; ⑵ 改写了同名虚函数; ⑶ 根据赋值兼容性规则使用了指针(或引用)。 例如:分析下列程序执行结果。 程序执行结果: class A show() is classed. class A show() is classed. class A show() is classed. class B show() is classed. 三、构造函数和析构函数调用虚函数 在构造函数和析构函数中调用虚函数采用静态联编,即它们所调用的虚函数是自己的类或基类中的函数,不是派生类中重定义的虚函数。 例如:分析如下程序执行结果。 四、纯虚函数与抽象类 1. 纯虚函数定义 格式:virtual 数据类型 函数名(形参表)=0; 功能:定义一个无任何功能的函数,该函数不执行任何操作。 说明:⑴ 纯虚函数定义的目的是为了在其派生类中重新定义该函数的功能;⑵ 一个类中可以定义多个纯虚函数。 2. 抽象类 ⑴ 凡是包含有纯虚函数的类称为抽象类; ⑵ 抽象类只能作为基类来派生新类,不能用于说明对象(但可以定义抽象类指针或抽象类引用); ⑶ 如果派生类中编写了基类纯虚函数代码,则派生类不再是抽象类,否则派生类仍然是抽象类; ⑷ 抽象类中至少含有一个虚函数,且至少有一个虚函数是纯虚函数; ⑸ 类的成员函数中可以调用纯虚函数,但在构造函数和析构函数中不能调用纯虚函数。 例如:以“形状”为基类,在此基础上派生出正方形、矩形、三角形和圆,并分别计算派生出的4种图形的面积。 分析:由于“形状”类并未给出具体是哪种形状,因此,将“形状”类作为基类,并将其计算面积的函数定义为纯虚函数,在派生类中根据具体形状再计算各自的面积。这样可保证得到的面积总和是正确的。 程序清单: 第八章 文件流 学习目标:掌握C+
您可能关注的文档
- 选修1.1第一章 微生物的利用.pptx
- 第1讲 马克思、恩格斯生平和贡献.ppt
- 环境工程原理课件,清华大学!.ppt
- 第二章 文书录入.pptx
- 超好的软件工程004.ppt
- 动物基因克隆技术.pptx
- 超声测厚仪器简介.pptx
- 危害分析与关键控制点(HACCP) 教程.ppt
- 第四章 社区营养学.ppt
- 浅谈移动互联网广告.pptx
- 眉山蓉光+5+万吨项目+110kV+变电站新建项目环评报告.pdf
- 宜宾市矿山急救医院-新增数字减影血管造影装置(DSA)项目环境影响报告表.pdf
- 浙江金士顿汽车科技有限公司环评报告表.pdf
- 浙江鸿帆电器科技有限公司环评报告.pdf
- 杭州脉波科技有限公司年产心血管医用导管5000根心血管医用设备500台技术改造项目环评报告.pdf
- 湖州美迈科技有限公司超大尺寸超轻铝合金航天结构件研发项目环评报告.pdf
- 湖州酷柏电气有限公司年产30000台智能高低压配电箱(柜)项目环境影响登记表.pdf
- 湖州安达汽车配件股份有限公司新增年产60万套法国Emotors新能源汽车逆变器壳体智能制造设备更新项目环评报告表.pdf
文档评论(0)