当前位置: 首页>教育教学/培训 > 电大函授C++面向对象程序设计课件第六章 多态性与虚函数.ppt

C++面向对象程序设计课件第六章 多态性与虚函数.ppt

  • 上传人(卖家):m****u
  • 文档编号:14506627
  • 上传时间:2024-08-01
  • 文档格式:PPT
  • 页数:25
  • 文档大小:211KB
  • 文本预览
  • 下载提示
  • 常见问题
    • 1、18 十二月 2023C+面向对象程序设计第六章 多态性与虚函数t6.1 多态性概述t6.2 重载与再定义t6.3 运算符重载t6.4 虚函数t6.5 抽象类18 十二月 2023C+面向对象程序设计6.1 多态性概述t6.1.1 多态的类型t6.1.2 多态的实现18 十二月 2023C+面向对象程序设计6.1.1 多态的类型t多态性是指同一个消息被不同类型的对象接收时产生不同的行为,特点就是一个接口,多个实现。+中多态性按照类型可以分为强制多态、过载多态、包含多态和参数多态四种。l强制多态是指通过语义操作,强制数据做本不属于该类型数据的操作。编译器内部的数据的隐式转换,比如3.0+4操作时转换成3.0+4.0就属于此种类型l重载多态是指函数重载,同名的操作在不同的环境下有不同的行为。前面学习过的普通函数重载和将要学习的类成员函数重载、运算符重载都属于此种类型。l包含多态是指在同一类族中定义于不同类中的同名函数的多态行为。我们本章将要学习的虚函数就属于此种类型。l参数多态是指功能、结构实现相同但所作用于的数据类型不同,也就是数据类型参数化的多态。第七章中的函数模板和类模板就属于此种多

      2、态。18 十二月 2023C+面向对象程序设计6.1.2 多态的实现t多态是指同一个消息被不同的对象接收产生不同的行为,因此,多态在实现的时候必须确定消息的操作对象。我们根据消息和对象相结合的时间分为两种:l在程序编译连接阶段完成的,也就是说在编译的过程中确定了消息的操作对象,我们称为静态绑定。l在程序运行阶段完成的,也就是说在程序运行的过程中才确定消息的操作对象,我们称为动态绑定。18 十二月 2023C+面向对象程序设计6.2 重载与再定义t6.2.1 函数的重载t6.2.2 函数的再定义 18 十二月 2023C+面向对象程序设计6.2.1 函数的重载t函数重载是指功能相似,函数名相同但所带参数不同的一组函数。这里的“所带参数不同”既可能是参数的数据类型不同也可能是参数的个数不同。l普通函数的重载。int abs(int val)return val0?val:val;18 十二月 2023C+面向对象程序设计6.2.1 函数的重载l类成员函数的重载。class Tdateprivate:int month,day,year;public:Tdate();Tdate(int m,

      3、int d,int y);Tdate:Tdate()month=6;day=20;year=2002;coutmonth/day/yearendl;Tdate:Tdate(int m,int d,int y)month=m;day=d;year=y;coutmonth/day/yearendl;18 十二月 2023C+面向对象程序设计6.2.2 函数的再定义t函数的再定义是指派生类新增了和基类中函数名相同,所带参数也相同的成员函数(如果参数不同就属于函数重载)。l派生类中函数再定义的时候,派生类中的函数成员覆盖了基类中的同名函数成员,通过派生类对象调用该函数成员时,调用的是派生类中新增的同名函数成员。要想在派生类中访问基类的同名成员,可以用前面讲过的作用域限定符。l派生类中函数再定义的时候,通过基类指针来访问该函数成员时,访问的是派生类从基类继承的函数成员。18 十二月 2023C+面向对象程序设计6.3 运算符重载t6.3.1 运算符重载的规则t6.3.2 运算符重载为成员函数 t6.3.3 运算符重载为友元函数 18 十二月 2023C+面向对象程序设计6.3.1 运算符重载的规

      4、则t运算符重载的规则如下:l只能重载已有的运算符,不能定义新的运算符,也不能改变原有运算符的含义。l运算符的优先级、结合性和操作对象的个数不能改变。l重载的运算符函数参数不能有默认参数,不能全部是预定义数据类型。l绝大部分重载的运算符函数都能被派生类继承,赋值运算符除外。l关系运算符“.”、作用域分辨符“:”、成员指针运算符“*”、sizeof运算符和三目运算符“?:”这五个运算符不能被重载。t运算符重载为类的成员函数的语法形式:18 十二月 2023C+面向对象程序设计6.3.1 运算符重载的规则l运算符重载为类的成员函数和友元函数的语法形式函数返回类型 operator 运算符(形式参数)函数体;函数返回类型 operator 运算符(形式参数)函数体;18 十二月 2023C+面向对象程序设计6.3.2 运算符重载为成员函数t运算符重载为类的成员函数,它就可以访问类的数据成员。使用重载运算符的时候,通过类的对象来调用运算符重载函数。l调用过程是隐式的,看起来和一般的运算表达式一样,程序编译的时候已经转换成对运算符函数的调用;。l运算符操作对象给出是隐式的,一个运算符操作的是对象本

      5、身的数据,即this指针指出。18 十二月 2023C+面向对象程序设计6.3.2 运算符重载为成员函数t单目运算符重载应用举例。class MyIntprivate:int m_a;int m_b;public:MyInt(int a,int b);void operator -();void MyInt:operator-()m_a=-m_a;m_b=-m_b;18 十二月 2023C+面向对象程序设计6.3.2 运算符重载为成员函数t双目运算符应用举例。class MyNumprivate:int number;public:MyNum();MyNum(int num);MyNum operator+(MyNum mynum);MyNum MyNum:operator+(MyNum mynum)MyNum temp;temp.number=number+mynum.number;return temp;18 十二月 2023C+面向对象程序设计6.3.3 运算符重载为友元函数t运算符重载为类的友元函数也能够访问类的数据成员。只是运算符重载为类的友元函数时,运算符的操作对象都必须通

      6、过重载函数的形参传入。t运算符重载为类的友元函数应用举例。18 十二月 2023C+面向对象程序设计6.3.3 类成员的访问控制class Complexprivate:float real,imag;public:Complex()real=0;imag=0;Complex(float r,float i)real=r;imag=i;friend Complex operator+(const Complex&c1,const Complex&c2);Complex operator+(const Complex&c1,const Complex&c2)Complex temp;temp.real=c1.real+c2.real;temp.imag=c1.imag+c2.imag;return temp;18 十二月 2023C+面向对象程序设计6.4 虚函数t6.4.1 一般虚函数成员t6.4.2 虚析构函数18 十二月 2023C+面向对象程序设计6.4.1 一般虚函数成员tC+中的虚函数机制,通过基类指针,就可以使属于同一个类族的不同对象产生不同的行为,从而实现了运行过程中的多

      7、态。lC+中声明一般虚函数的语法规则如下:virtual 函数返回类型 函数名(形参)函数体;18 十二月 2023C+面向对象程序设计6.4.1 一般虚函数成员t虚函数应用举例。class Pointprivate:float x,y;public:Point(float px,float py)x=px;y=py;virtual float Area()constreturn 0;class Rectangle:public Pointprivate:float w,h;public:Rectangle(float rx,float ry,float rw,float rh);float Area()const return w*h;18 十二月 2023C+面向对象程序设计6.4.2 虚析构函数 tC+声明虚析构函数的格式与一般析构函数类似,也是在函数返回类型前面加上关键字virtual。lC+中声明一般虚函数的语法规则如下:l类的析构函数声明为虚函数,那么以它为基类派生的所有派生类的析构函数也变成了虚函数。它的好处是,采用一个基类指针就可以调用所有派生类的析构函数,完成不同对象

      8、的清理工作。virtual 类名()函数体;18 十二月 2023C+面向对象程序设计6.4.2 虚析构函数t虚析构函数应用举例。class Studentpublic:Student()coutIn Student constructorendl;virtual Student()coutInStudentdestructorendl;class GraduateStudent:public Studentpublic:GraduateStudent();GraduateStudent();GraduateStudent:GraduateStudent()coutIn GraduateStudent constructorendl;GraduateStudent:GraduateStudent()coutIn GraduateStudent destructorendl;18 十二月 2023C+面向对象程序设计6.5 抽象类t6.5.1 纯虚函数t6.5.2 抽象类18 十二月 2023C+面向对象程序设计6.5.1 纯虚函数t抽象类为一个类族提供了若干公共接口,这些接口是由纯虚函

      9、数来声明的。lC+中纯虚函数的声明如下:l纯虚函数实际上就在一般虚函数基础上加了个“=0”,声明为纯虚函数之后,就意味着是类的公共接口,不能再给出函数体的实现。纯虚函数的具体实现代码由派生类给。l出我们可以比较一下虚函数和纯虚函数的区别:一个有函数体,一个没有函数体。virtual 函数返回类型 函数名(形参)=0;18 十二月 2023C+面向对象程序设计6.5.2 抽象类t至少包含有一个纯虚函数的类称为抽象类。抽象类是为了保证一个类族共享一些公共接口,建立统一的操作界面而设计的类。l从抽象类派生的类必须实现抽象类中所有的接口,即给出抽象类中所有纯虚函数的实现,否则它仍然是一个抽象类化对象。l抽象类不能实例化,也就是不能用抽象类来定义一个对象。18 十二月 2023C+面向对象程序设计6.5.2 抽象类t抽象类应用举例。class Pointprivate:float x,y;public:Point(float px,float py)x=px;y=py;virtual float Area()=0;class Rectangle:public Pointprivate:float w,h;public:Rectangle(float rx,float ry,float rw,float rh);float Area()return w*h;Rectangle:Rectangle(float rx,float ry,float rw,float rh):Point(rx,ry)w=rw;h=rh;

      《C++面向对象程序设计课件第六章 多态性与虚函数.ppt》由会员m****u分享,可在线阅读,更多相关《C++面向对象程序设计课件第六章 多态性与虚函数.ppt》请在八斗文库上搜索。

      点击阅读更多内容
    TA的资源 更多>
  • 《MATLAB图像处理实例详解》课件Chapter_9o第9章彩色图像处理.pptx

    《MATLAB图像处理实例详解》课件Chapter_9o第9章彩色图像处理.pptx

  • 《MATLAB图像处理实例详解》课件Chapter_6i第6章图像复原技术.pptx

    《MATLAB图像处理实例详解》课件Chapter_6i第6章图像复原技术.pptx

  • 《MATLAB图像处理实例详解》课件Chapter_13a第13章小波在图像处理中的应用.pptx

    《MATLAB图像处理实例详解》课件Chapter_13a第13章小波在图像处理中的应用.pptx

  • 《Windows Server操作系统维护与管理项目教程》课件学习情境4.pptx

    《Windows Server操作系统维护与管理项目教程》课件学习情境4.pptx

  • 《MATLAB图像处理实例详解》课件Chapter_11o第11章图像特征分析.pptx

    《MATLAB图像处理实例详解》课件Chapter_11o第11章图像特征分析.pptx

  • 《中外广告史》课件第七章ppt.pptx

    《中外广告史》课件第七章ppt.pptx

  • 《经济学原理与应用》课件第8章ppt.pptx

    《经济学原理与应用》课件第8章ppt.pptx

  • 《企业内部控制与制度设计(第3版)》课件项目五销售业务内部控制与制度设计.pptx

    《企业内部控制与制度设计(第3版)》课件项目五销售业务内部控制与制度设计.pptx

  • 《经济学原理与应用》课件第4章ppt.pptx

    《经济学原理与应用》课件第4章ppt.pptx

  • 《企业内部控制与制度设计(第3版)》课件项目三采购业务内部控制与制度设计.pptx

    《企业内部控制与制度设计(第3版)》课件项目三采购业务内部控制与制度设计.pptx

  • 《资产评估》课件项目 八企业价值评估.ppt

    《资产评估》课件项目 八企业价值评估.ppt

  • 《经济学原理与应用》课件第7章ppt.pptx

    《经济学原理与应用》课件第7章ppt.pptx

  • 《人员测评原理与方法(第三版)》课件第十一章 个人资料的分析与评鉴.pptx

    《人员测评原理与方法(第三版)》课件第十一章 个人资料的分析与评鉴.pptx

  • 课件《客舱设施与服务》(模块一实操).pptx

    课件《客舱设施与服务》(模块一实操).pptx

  • 《新编文学理论(第二版)》课件第七章.pptx

    《新编文学理论(第二版)》课件第七章.pptx

  • 课件《客舱设施与服务》(模块三案例).pptx

    课件《客舱设施与服务》(模块三案例).pptx

  • 《资产评估》课件项目四 机器人设备评估.ppt

    《资产评估》课件项目四 机器人设备评估.ppt

  • 《企业纳税实务(第3版)》项目一、项目二.ppt

    《企业纳税实务(第3版)》项目一、项目二.ppt

  • 《酒吧服务与管理(第3版)》课件模块一酒吧概述.ppt

    《酒吧服务与管理(第3版)》课件模块一酒吧概述.ppt

  • 《营销心理学》课件项目二 探索消费者的心理过程.pptx

    《营销心理学》课件项目二 探索消费者的心理过程.pptx

  • 《人员测评原理与方法(第三版)》课件第五章智能测评.pptx

    《人员测评原理与方法(第三版)》课件第五章智能测评.pptx

  • 《人员测评原理与方法(第三版)》课件第七章 胜任素质测评.pptx

    《人员测评原理与方法(第三版)》课件第七章 胜任素质测评.pptx

  • 《银行产品推广与服务》课件.pptx

    《银行产品推广与服务》课件.pptx

  • 《客舱设施与服务》模块二练习题答案.docx

    《客舱设施与服务》模块二练习题答案.docx

  • 《经济学原理与应用》课件第3章ppt.pptx

    《经济学原理与应用》课件第3章ppt.pptx

  • 《中外广告史》课件第十章.pptx

    《中外广告史》课件第十章.pptx

  • 《酒吧服务与管理(第3版)》教案教案(模块十三).docx

    《酒吧服务与管理(第3版)》教案教案(模块十三).docx

  • 《跨境电商通关实务(第2版)》课件2021课件4关务技能3-报关单填制.ppt

    《跨境电商通关实务(第2版)》课件2021课件4关务技能3-报关单填制.ppt

  • 《客舱设施与服务》模块一练习题.docx

    《客舱设施与服务》模块一练习题.docx

  • 《资产评估》课件项目一 资产评估基本理论.ppt

    《资产评估》课件项目一 资产评估基本理论.ppt

  • 《经济学原理与应用》课件第1章ppt.pptx

    《经济学原理与应用》课件第1章ppt.pptx

  • 《企业内部控制与制度设计(第3版)》同步训练参考答案.doc

    《企业内部控制与制度设计(第3版)》同步训练参考答案.doc

  • 点击查看更多
    猜你喜欢
  • 中学生心理健康测精彩试题.doc

    中学生心理健康测精彩试题.doc

  • 影响世界地四大发明说课备课.doc

    影响世界地四大发明说课备课.doc

  • 学习雷锋精神演讲稿:雷锋精神薪火相传.docx

    学习雷锋精神演讲稿:雷锋精神薪火相传.docx

  • 人教版七年级数学上册课本全部内容.doc

    人教版七年级数学上册课本全部内容.doc

  • 居民环境保护意识和行为调查研究报告[草稿].doc

    居民环境保护意识和行为调查研究报告[草稿].doc

  • 中职数学立体几何教案设计.doc

    中职数学立体几何教案设计.doc

  • 常用玻璃量器检定规程.doc

    常用玻璃量器检定规程.doc

  • 八年级语文(上册)配套练习册答案解析[全册]].doc

    八年级语文(上册)配套练习册答案解析[全册]].doc

  • 中小学心理健康教育与德育关系.doc

    中小学心理健康教育与德育关系.doc

  • 【2019年整理】初中生物地理会考复习资料人教版.doc

    【2019年整理】初中生物地理会考复习资料人教版.doc

  • 学困生转化工作总结材料.doc

    学困生转化工作总结材料.doc

  • 新课标小学英语阅读100篇.doc2.doc

    新课标小学英语阅读100篇.doc2.doc

  • 八极拳套路完整示范.doc

    八极拳套路完整示范.doc

  • 儿童睡前故事文字版大全.doc

    儿童睡前故事文字版大全.doc

  • 初中生物知识点总结材料整理后.doc

    初中生物知识点总结材料整理后.doc

  • 因工作失误的保证书.docx

    因工作失误的保证书.docx

  • 安全生产应急管理工作考察材料.docx

    安全生产应急管理工作考察材料.docx

  • 安全生产工作年终总结.docx

    安全生产工作年终总结.docx

  • 15、应急救援预案评审记录表.doc

    15、应急救援预案评审记录表.doc

  • 房建工程监理规划实施范本[2].doc

    房建工程监理规划实施范本[2].doc

  • 楷书笔画地书写方法.doc

    楷书笔画地书写方法.doc

  • 经典柴油发电机安装方案说明.doc

    经典柴油发电机安装方案说明.doc

  • 员工培训管理系统体系.doc

    员工培训管理系统体系.doc

  • 北京小米有限责任公司战略分析.doc

    北京小米有限责任公司战略分析.doc

  • 常用注射操作并发症的预防和处理.doc

    常用注射操作并发症的预防和处理.doc

  • 深基坑开挖、支护、降水监理实施细则.doc

    深基坑开挖、支护、降水监理实施细则.doc

  • 感染科临床路径汇总情况.doc

    感染科临床路径汇总情况.doc

  • 小功率电动机地安全系统要求GB12350-90.doc

    小功率电动机地安全系统要求GB12350-90.doc

  • 办公楼、公寓楼物业服务采购项目招投标文件2017年.doc

    办公楼、公寓楼物业服务采购项目招投标文件2017年.doc

  • 高质量流量计工作原理.doc

    高质量流量计工作原理.doc

  • 北京幼升小考试入学测精彩试题【完整版】.doc

    北京幼升小考试入学测精彩试题【完整版】.doc

  • 硬笔书法校本教材21201.doc

    硬笔书法校本教材21201.doc

  • 管理系统心理学讲义重点整理.doc

    管理系统心理学讲义重点整理.doc

  • 容器厂HSE作业指导书[压力容器制作2011].doc

    容器厂HSE作业指导书[压力容器制作2011].doc

  • 企业管理系统中地激励要求措施.doc

    企业管理系统中地激励要求措施.doc

  • 工程建设管理工作报告.doc

    工程建设管理工作报告.doc

  • 广州版五年级英语上册复习内容.doc

    广州版五年级英语上册复习内容.doc

  • 简明西方建筑史(多图).doc

    简明西方建筑史(多图).doc

  • 某某电厂节能自查报告.doc

    某某电厂节能自查报告.doc

  • 现用图解《25式》关节保健操(新颖).doc

    现用图解《25式》关节保健操(新颖).doc

  • (人)版三年级语文上册~课外阅读理解练习试题(卷).doc

    (人)版三年级语文上册~课外阅读理解练习试题(卷).doc

  • 房屋租赁合同模板[办事处用].doc

    房屋租赁合同模板[办事处用].doc

  • 2018年春期大班下周计划表.doc

    2018年春期大班下周计划表.doc

  • 卫生局抗震救灾工作总结.docx

    卫生局抗震救灾工作总结.docx

  • 务虚会上的领导演讲稿_1.docx

    务虚会上的领导演讲稿_1.docx

  • 学习廉政准则心得体会二.docx

    学习廉政准则心得体会二.docx

  • 四年级古诗词(80首).doc

    四年级古诗词(80首).doc

  • 初中文学常识汇总情况.doc

    初中文学常识汇总情况.doc

  • 广东省成人高等教育学士学位英语词汇语法大全.doc

    广东省成人高等教育学士学位英语词汇语法大全.doc

  • 关于本文
    本文标题:C++面向对象程序设计课件第六章 多态性与虚函数.ppt
    链接地址:https://www.badou.com/p-14506627.html
    收起
    展开