版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第第1212章章 多态类多态类多态是面向对象程序设计的又一大特征。多态多态是面向对象程序设计的又一大特征。多态性是指发出同样的消息被不同类型的对象接收时性是指发出同样的消息被不同类型的对象接收时产生完全不同的行为,简单的说就是产生完全不同的行为,简单的说就是“一个接口,一个接口,多种算法多种算法”。第第1212章章 多态类多态类要点:要点:虚函数的定义及使用方法虚函数的定义及使用方法纯虚函数及抽象类的基本概念纯虚函数及抽象类的基本概念重点内容:重点内容:虚函数的定义及使用方法虚函数的定义及使用方法一、虚函数一、虚函数1.虚函数的定义格式虚函数的定义格式在一个类中用关键字在一个类中用关键字vir
2、tual说明的成员函数称为虚函数,说明的成员函数称为虚函数,其定义的格式如下:其定义的格式如下:virtual函数类型函数类型函数名(形参表)函数名(形参表)函数体函数体定义虚函数就是为了实现多态类。在基类中某个成员定义虚函数就是为了实现多态类。在基类中某个成员函数被声明为虚函数后,这个成员函数通常要在派生类中函数被声明为虚函数后,这个成员函数通常要在派生类中被重新定义,否则定义虚函数就没有意义。被重新定义,否则定义虚函数就没有意义。一、虚函数一、虚函数如果在基类中说明了的虚函数,在它的派生如果在基类中说明了的虚函数,在它的派生类中与基类中虚函数说明相同的函数一定是虚函类中与基类中虚函数说明相
3、同的函数一定是虚函数,可以省略关键字数,可以省略关键字virtual。但从程序的易读性。但从程序的易读性出发,最好不要省略派生类中重定义虚函数时的出发,最好不要省略派生类中重定义虚函数时的virtual关键字。关键字。一、虚函数一、虚函数例例12.1虚函数的定义及使用。虚函数的定义及使用。#includeclassCountrypublic:virtualvoidDisplay()/虚函数虚函数cout世界上有很多国家。世界上有很多国家。endl;classChina:publicCountrypublic:virtualvoidDisplay()cout中国是我们伟大的祖国。中国是我们伟大的
4、祖国。endl;classAmerica:publicCountrypublic:virtualvoidDisplay()cout美国和我们隔洋相对。美国和我们隔洋相对。Display();pc=&am;pc-Display();pc=&ch;pc-Display();一、虚函数一、虚函数2. 2. 虚析构函数虚析构函数 析构函数是在该类对象消亡之前进行一些必析构函数是在该类对象消亡之前进行一些必要的清理工作,对于动态绑定的虚函数必须用虚要的清理工作,对于动态绑定的虚函数必须用虚析构函数进行释放。析构函数进行释放。一、虚函数一、虚函数例例12.2虚析构函数应用举例。虚析构函数应用举例。#inc
5、ludeclassApublic:virtualvoiddisplay()coutdisplayAendl; virtualA()coutDeleteobjectofAendl;classB:publicApublic: virtualvoiddisplay()coutdisplayBendl;virtualB()coutDeleteobjectofBdisplay();deletepb;二、纯虚函数和抽象类二、纯虚函数和抽象类1.纯虚函数纯虚函数纯虚函数是一种特殊的虚函数,它只有函数纯虚函数是一种特殊的虚函数,它只有函数的声明,并没有具体实现函数的功能。它的一般的声明,并没有具体实现函数的功
6、能。它的一般格式如下:格式如下:virtual=0;#includeclassShapepublic:Shape(doubledfx=0.0,doubledfy=0.0);virtualvoidDraw()=0;/纯虚函数纯虚函数protected:doubleFirstX;/第一点第一点x坐标坐标doubleFirstY;/第一点第一点y坐标坐标;Shape:Shape(doubledfx,doubledfy)FirstX=dfx;FirstY=dfy;classLine:publicShapepublic:Line(doubledfx=0.0,doubledfy=0.0,doubledsx=0.0,doubledsy=0.0);voidDraw();protected:doubleSecondX;/第二点第二点x坐标坐标doubleSecondY;/第二点第二点y坐标坐标;Line:Line(doubledfx,doubledfy,doubledsx,doubledsy):Shape(dfx,dfy)SecondX=dsx;SecondY=dsy;voidLine:Draw()cout绘制一条直线,第一点坐标为:绘制一条直线,第一点坐标为:(FirstX,FirstY),第二点坐标为:,第二点坐标为:(SecondX,SecondY)endl;classCircle:p
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026事业单位工勤技能-山东-山东水利机械运行维护工五级(初级工)历年参考题库含答案详解
- 2026事业单位工勤技能-宁夏-宁夏行政岗位工四级(中级工)历年参考题库含答案详解
- 2026事业单位工勤技能-天津-天津计量检定工一级(高级技师)历年参考题库含答案详解
- 2026事业单位工勤技能-四川-四川环境监测工五级(初级工)历年参考题库含答案详解
- 2026事业单位工勤技能-吉林-吉林防疫员二级(技师)历年参考题库含答案详解
- 2026事业单位工勤技能-内蒙古-内蒙古水土保持工三级(高级工)历年参考题库含答案详解
- 2026事业单位工勤技能-云南-云南水土保持工三级(高级工)历年参考题库含答案详解
- 2026事业单位工勤技能-上海-上海水工监测工四级(中级工)历年参考题库含答案详解
- 2026中级卫生职称-主治医师-肿瘤内科学(中级)代码:341历年参考题库含答案详解
- 长信增利动态策略股票型证券投资基金基金合同(范本)
- 草地与牧草管理学
- 湖南省长沙市一中双语实验学校2024-2025学年九年级下学期入学考试英语试卷(含笔试答案无听力原文及音频)
- 《微信小程序开发-从入门到项目实战》高职全套教学课件
- 心脏射频消融并发症(吉文庆)
- 2024新人教版七年级上册英语单词字帖(衡水体)
- 听王荣生教授评课(重点笔记)
- DLT 5434-2021 电力建设工程监理规范表格
- JTG-T D32-2012 高清版 公路土工合成材料应用技术规范
- SBT-11205-2017-公用纺织品清洗服务规范1
- 乳腺癌围手术期护理
- 2024-2025年上海中考英语真题及答案解析
评论
0/150
提交评论