当前位置: 首页>教育教学/培训 > 电大函授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

  • 2022通信生产实习报告汇编8篇.docx

    2022通信生产实习报告汇编8篇.docx

  • 六年级语文教案《别饿坏了那匹马》.doc

    六年级语文教案《别饿坏了那匹马》.doc

  • 教案《去打开大自然绿色的课本》教学1.doc

    教案《去打开大自然绿色的课本》教学1.doc

  • 北师大版一年级数学(下册)单元教学反思.doc

    北师大版一年级数学(下册)单元教学反思.doc

  • 2022通用人生感悟格言合集80句.docx

    2022通用人生感悟格言合集80句.docx

  • 2022酒店员工合同范本.docx

    2022酒店员工合同范本.docx

  • 班级月工作总结_1.docx

    班级月工作总结_1.docx

  • 山西某煤矿35kv变电所设计说明.doc

    山西某煤矿35kv变电所设计说明.doc

  • 2022酒店员工试用期转正工作总结9篇.docx

    2022酒店员工试用期转正工作总结9篇.docx

  • 北师大初中生物七年级上册《第二单元三第一节 细胞的基本结构和功能》word教案 (一一).doc

    北师大初中生物七年级上册《第二单元三第一节 细胞的基本结构和功能》word教案 (一一).doc

  • 电磁感应及手写触控技术.docx

    电磁感应及手写触控技术.docx

  • 语文《识字1》教学设计七.doc

    语文《识字1》教学设计七.doc

  • 三语文教案恐龙的灭绝1.doc

    三语文教案恐龙的灭绝1.doc

  • 北师大初中生物七年级上册《第三单元六第二节 营养器官的生长》word教案 (五).doc

    北师大初中生物七年级上册《第三单元六第二节 营养器官的生长》word教案 (五).doc

  • 书香校园读书交流活动简讯.doc

    书香校园读书交流活动简讯.doc

  • 粤教版化学九年级上册第一章测试.docx

    粤教版化学九年级上册第一章测试.docx

  • 博弈论与信息经济学.pptx

    博弈论与信息经济学.pptx

  • 大班数学谁的位置动了教案.doc

    大班数学谁的位置动了教案.doc

  • 岗位大练兵活动实施方案.doc

    岗位大练兵活动实施方案.doc

  • 语文《小松树和大松树》片断赏析.doc

    语文《小松树和大松树》片断赏析.doc

  • 2022年医学专题—三级综合医院评审标准(2011年版)卫医管发〔2011〕33号.docx

    2022年医学专题—三级综合医院评审标准(2011年版)卫医管发〔2011〕33号.docx

  • 注塑机按键说明书.docx

    注塑机按键说明书.docx

  • 迎党的100周岁华诞党员心得体会范文5篇.doc

    迎党的100周岁华诞党员心得体会范文5篇.doc

  • 2022年医学专题—增员万能话术32页.ppt

    2022年医学专题—增员万能话术32页.ppt

  • 小学生生活卫生习惯的养成研究开题报告.doc

    小学生生活卫生习惯的养成研究开题报告.doc

  • 2022金工实习报告合集6篇.docx

    2022金工实习报告合集6篇.docx

  • 2022银行出纳员年终工作总结.docx

    2022银行出纳员年终工作总结.docx

  • 生态专业实习报告600字.doc

    生态专业实习报告600字.doc

  • 昆虫备忘录教学反思一.docx

    昆虫备忘录教学反思一.docx

  • 新一代IDC发展趋势及关键技术.doc

    新一代IDC发展趋势及关键技术.doc

  • 六年级语文教案《詹天佑》教案2.doc

    六年级语文教案《詹天佑》教案2.doc

  • 三年级思品与社会教学计划-1.docx

    三年级思品与社会教学计划-1.docx

  • 2022年医学专题—神经干动作电位.docx

    2022年医学专题—神经干动作电位.docx

  • 2022银行个人职业规划.docx

    2022银行个人职业规划.docx

  • 2022通信员工述职报告.docx

    2022通信员工述职报告.docx

  • 绒山羊养殖及配种.docx

    绒山羊养殖及配种.docx

  • 委托服务合同范文3篇最新2020.docx

    委托服务合同范文3篇最新2020.docx

  • 2022通用人生哲理格言汇总66条.docx

    2022通用人生哲理格言汇总66条.docx

  • 水和电解质代谢紊乱习题 名词解释.doc

    水和电解质代谢紊乱习题 名词解释.doc

  • 交际高手速成训练讲义全.doc

    交际高手速成训练讲义全.doc

  • 学生交通安全教育主题班会策划.docx

    学生交通安全教育主题班会策划.docx

  • 报关精品课件第四章.pptx

    报关精品课件第四章.pptx

  • 员工个人工作心得体会范文(10篇).docx

    员工个人工作心得体会范文(10篇).docx

  • 石油化工企业工艺管道腐蚀及防护.docx

    石油化工企业工艺管道腐蚀及防护.docx

  • 音响调音员中级复习题.doc

    音响调音员中级复习题.doc

  • 对齿轮减速器现状研究.doc

    对齿轮减速器现状研究.doc

  • 统编版初中语文教材的特点与阅读教学实施策略研究.docx

    统编版初中语文教材的特点与阅读教学实施策略研究.docx

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