购买

¥ 20.0

加入VIP
  • 专属下载特权
  • 现金文档折扣购买
  • VIP免费专区
  • 千万文档免费下载

上传资料

关闭

关闭

关闭

封号提示

内容

首页 521多继承的概念

521多继承的概念.ppt

521多继承的概念

精品课件库
2019-06-15 0人阅读 举报 0 0 暂无简介

简介:本文档为《521多继承的概念ppt》,可适用于综合领域

多继承多继承的概念、单继承派生类仅有一个直接基类、多继承派生类有两个或两个以上的直接基类实例:在一个圆内显示正文LocationPointCircleLocationGMessageMCircle、多继承比单继承多出几个直接基类()有多个基类类名基类类名之间用“”隔开()同一个类不能被多次说明为一个派生类的直接基类()多继承派生类的初始化通过调用基类构造函数实现对基类数据进行初始化()调用析构函数时调用顺序与构造函数顺序相反。、当类等级中出现同名函数时:()根据参数的特征加以区分()使用“::”加以区分()根据类对象加以区分注意:尽可能的避免同名。虚基类不要求虚函数与多态性概述、普通成员函数的重载可表达为三种方式:()在同一个类中重载()在不同类中重载()基类的成员函数在派生类中重载。、重载函数在编译时的三种区分方法:根据参数的特征加以区分。如:show(int,char)show(char*,float)使用“::”加以区分。如:Circle::Show()Point::Show()根据类对象加以区分。如:ACircle::Show()APoint::Show()  重载只是多态性的一种简单形式C中提供了一种更为灵活的多态性机制虚函数。  虚函数允许函数调用与函数体的联系在运行时才进行。指向基类对象的指针指向派生类对象一、指向基类和派生类的指针变量是相关的。基类:BClass派生类:DClass公有派生BClass*p指向类BClass的对象的指针BClassBob对象obDClassDob对象obp=Bobp指向BClass的对象p=Dobp指向DClass的对象  利用p可以访问从基类BClass继承的成员但DClass自己定义的成员不能用P访问(除非用显示类型转换)例#include<iostreamh>#include<stringh>ClassBclass{charnamepubluc:voidputname(char*s){…}voidshowname{…}}ClassDclass:publicBclass{charphonenumpublic:voidputphone(char*name){…}voidshowphone(){…}}Nain(){Bclass*pBclassBobDclass*dpDclassDobp=Bobp>putname(“ThomasEdison”)p=Dobp>putname(“AlbertEinstein”)Bobshowname()Dobshowname()dp=Dobdp>putphone(“”)dp>showphone()……}!!找出出错原因??一个指向基类的指针可以用来指向从基类公有派生的任何对象  C实现运行时多态性的关键途径。、可以用一个指向基类的指针指向其公有派生类的对象但相反不正确不能用指向派生类的指针指向一个基类的对象、想用基类指针其公有派生类的特定成员必须将基类指针用显示类型转换为派生类指针。 虚函数一、虚函数的概念  虚函数是在基类中被冠以virtual的成员函数。、提供一种接口界面、可以在一个或多个派生类中被重新定义但要求在派生类重新定义时虚函数的函数原形包括返回类型、函数名、参数个数、参数类型的顺序必须完全相同。、分析实例例#include<iostreamh>ClassBase{protected:intxpublic:Base(inta){x=a}voidwho(){cout<<“base”<<x<<“n”}}ClassFirstd:publicBase{public:Firstd(inta):Base(a){}voidwho(){cout<<“Firstderivation”<<x<<“n”}}虚函数的使用、由于虚函数的解释机制实现了“单界面多实现版本”的思想这种在运行时刻将函数界面与函数的不同实现版本进行匹配的过程称为“晚期匹配”也称为运行时的多态性、实现运行时多态性的关键:用指向基类的指针访问虚函数、基类函数f()具有虚特性的条件:()在基类中将该函数说明为虚函数(virtual)()定义基类的公有派生类()在基类的公有派生类中一模一样地重载该虚函数()定义指向基类的指针变量它指向基类的公有派生类的对象。、虚函数与函数重载的不同:参数完全相同。例二、多继承与虚基类、编译时就知道对象的准确类型时不必使用虚函数调用机制需用普通的成员函数调用即可(虚函数调用机制开销较大)、编译时不知道对象的实际类型通过一个指针或引用来调用运行时动态确定此时使用虚函数调用机制比较合理。 纯虚函数及抽象类、基类往往表示抽象的概念基类中的某些虚函数没有定义是很正常的要求在派生类中必须重定义这些虚函数、纯虚函数在基类中说明的虚函数。在基类中没有定义要求任何派生类都必须定义自己的版本。 一般形式:virtualtypefuncname(参数表)=、抽象类类中至少有一个纯虚函数。()抽象类用来定义各种接口()具体的实现在派生内中提供()抽象类只能用作其他类的基类不能建立对象不能作为参数类型、返回类型或显式转换类型可声明指针和引用。继承的意义 用模块的观点考察类、模块提供给外部世界一组服务提供基本的功能供其它模块加以扩充、继承提供了一种可能性:继承原有服务并增加新的功能、提供全新的开发方法:  在预先实现的基础上扩充不需要重做已经做过的东西。  一个良好的模块:开放的、闭合的开放闭合原理。开放闭合原理、一个模块如果提供了扩充的可能生则称为模块是开放的、一个模块如果能交付其它模块使用则称为模块是闭合的  即开放、又闭合的要求解决起来很困难。因此建立继承机制提供了扩充的可能。设计可重用模块结构最大的困难、寻找共性、在各个层次通过使用继承来建立类等级可以充分抽象出各个层次的共同特征。 类型的观点

VIP尊享8折文档

用户评价(0)

关闭

新课改视野下建构高中语文教学实验成果报告(32KB)

抱歉,积分不足下载失败,请稍后再试!

提示

试读已结束,如需要继续阅读或者下载,敬请购买!

文档小程序码

使用微信“扫一扫”扫码寻找文档

1

打开微信

2

扫描小程序码

3

发布寻找信息

4

等待寻找结果

我知道了
评分:

/17

521多继承的概念

¥20.0

会员价¥16.0

VIP

在线
客服

免费
邮箱

爱问共享资料服务号

扫描关注领取更多福利