第12章 多态性与虚函数ppt课件.ppt

第12章 多态性与虚函数ppt课件.ppt

ID:59197809

大小:156.50 KB

页数:31页

时间:2020-09-26

第12章 多态性与虚函数ppt课件.ppt_第1页
第12章 多态性与虚函数ppt课件.ppt_第2页
第12章 多态性与虚函数ppt课件.ppt_第3页
第12章 多态性与虚函数ppt课件.ppt_第4页
第12章 多态性与虚函数ppt课件.ppt_第5页
资源描述:

《第12章 多态性与虚函数ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第十二章多态性和虚函数12.1静态联编和动态联编12.2虚函数12.3纯虚函数和抽象类12.4抽象类实例问题引入1-多态性一个名称(函数名)可以有多种语义。用户只需发送同样的消息,而不同类型的对象接收导致不同的行为。加法intadd(inta,intb)complexadd(complexa,complexb)Intadd(inta,intb,intc)add例1-重载:计算面积areaarea()shapearea()squrearea()circle例2:能否用相同调用方式来调用类族中属于不同类功能类似的同名函数?问题引入2——继承中的赋值兼容规则派生类对象可以赋值给基类对象

2、派生类对象可以初始化基类的引用派生类对象地址可赋值给基类指针好处:对于基类及公有派生类的对象,可以使用相同的函数统一进行处理(因为当函数的形参为基类对象时,实参可以是派生类的对象)classB{}classD:publicB{ }Bb1,*pb1;Dd1;b1=d1;B&bb=d1;pb1=&d1;例12.1计算并显示大学生和研究生的学费fee1fee2fee3fee4大学生学费4800住宿1100书报费400其他200研究生住宿1100书报费400其他200unstudent#no#name#fee1#fee2#fee3#fee4+calfee()+disp()graduate

3、+calfee()+disp()统计并显示f()calfee()disp()#includeclassunstudent{protected:intno;charname[10];intfee1,fee2,fee3,fee4,fee;public:voidcalfee(){cout<<"学号:";cin>>no;cout<<"姓名:";cin>>name;fee1=4800;fee2=1100;fee3=400;fee4=200;fee=fee1+fee2+fee3+fee4;}voiddisp(){cout<<"学费:"<

4、<<"住宿费:"<>no;cout<<"姓名:";cin>>name;fee1=1100;fee2=400;fee3=200;fee=fee1+fee2+fee3;}voiddisp(){cout<<"住宿费:"<

5、1<

6、针(引用)指向一个派生类对象,那么经由此指针(引用),你只能调用基类定义的函数。---why?(静态联编)大学生收费:学号:1姓名:王国华学费:4800住宿费:1100书报费:400其他:200总费用:6500研究生收费:学号:120姓名:张文华学费:4800住宿费:1100书报费:400其他:200总费用:650012.1静态联编和动态联编联编(绑定)(binding)把函数调用与适当的函数代码相对应的动作(一个标志符与一个内存地址联系在一起的过程)称为联编联编分为静态联编在编译阶段决定执行哪个同名的被调用函数(重载)动态联编。在编译阶段不能决定执行哪个同名的被调用函数,只在执

7、行阶段才能依据要处理的对象类型来决定执行哪个类的成员函数多态性也分为静态和动态两种:静态多态性——函数重载——静态联编一个类中的同名函数同名不同型,可根据参数类型及个数区别语义,通过实际的参数由编译系统决定调用哪个函数,如在一个类中参数不同的构造函数,运算符重载函数等动态多态性——虚函数——动态联编类层次中的不同类中的同名函数,同名同型(参数一样),因而要根据指针指向的对象所在类来区别语义,来决定调用哪个类的成员函数。(采用动态联编)继承讨论的是类与类的层次关系多态则是考虑在不同

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。