第4章-继承和多重继承.ppt

第4章-继承和多重继承.ppt

ID:62066470

大小:237.50 KB

页数:69页

时间:2021-04-14

第4章-继承和多重继承.ppt_第1页
第4章-继承和多重继承.ppt_第2页
第4章-继承和多重继承.ppt_第3页
第4章-继承和多重继承.ppt_第4页
第4章-继承和多重继承.ppt_第5页
资源描述:

《第4章-继承和多重继承.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第4章继承和多重继承一、继承的概念二、派生类的生成过程三、继承方式对基类成员的访问控制四、派生类的构造函数和析构函数五、虚基类六、虚基类机制下的构造函数的执行顺序一、继承的概念1、单继承2、多继承3、访问方式先看一个例子继承的概念 举例:人(Person)类{属性(数据成员):姓名性别年龄肤色等方法(函数成员):会直立行走会思考等};黑人(BlackPerson)类{属性(数据成员):姓名性别年龄肤色(一定为黑色)等方法(函数成员):会直立行走会思考等};具体代码:enumSex{male,female};enumColor{black,yellow,white};classPers

2、on{intage;Sexsex;Colorcolor_of_skin;//…public:intGetAge(){returnage;}voidSetAge(inta){age=a;}SexGetSex(Sexs){sex=s;}ColorGetColor(Colorc){returncolor_of_skin;}voidSetColor(Colorc){color_of_skin=c;}voidWalk_Z(){//…}voidThink(){//…}//…};classBlackPerson:publicPerson{public:BlackPerson(){SetColor(

3、black);}//...};人(Person)黑人(BlackPerson)黑人类具有人类的所有的属性和方法,又有自己的特殊之处(肤色为黑色)。人类:父类(基类)黑人类:子类(派生类)黑人类与人类之间是继承与被继承的关系一、继承的概念从已定义类(数据类型)中导出新类(新数据类型)时,新类具有原有类的所有的属性和方法。1、单继承1)语法格式2)举例1、单继承1)继承的语法格式(工作方式):class父类名{//…};class子类名:public父类名{//…};1、单继承2)举例:a)上例中的Person类与BlackPerson类b)classStudent//学生类———父类(

4、基类){//...};classGraduateStudent:publicStudent//研究生类———子类(派生类){//...};2、多继承指子类从多个父类中派生而来语法格式:class子类名:访问方式基类名1,访问方式基类名2,……{派生类中的新成员};3、访问方式publicprotectedprivate二、派生类的生成过程1、吸收基类成员2、改造基类成员3、添加新成员1、吸收基类成员派生类继承吸收了基类的全部数据成员以及除了构造函数、析构函数之外的全部函数成员。也就是说,基类中的构造函数和析构函数是不能继承到派生类中的2、改造基类成员二个方面的改造:一是对基类成员的访

5、问方式问题,这由派生类定义时的访问方式来控制;二是对基类数据成员或成员函数的覆盖,也就是在派生类中定义了与基类中同名的数据成员或函数成员,由于作用域不同,于是发生同名覆盖,基类中的成员就被替换成派生类中的同名成员。3、添加新成员在派生类中,除了从基类中继承过来的成员外,还可以根据需要在派生类中添加新的数据成员和成员函数,以实现必要的新功能,可以看出,在派生类中可以添加新成员的机制是继承和派生机制的核心,保证了派生类在功能上比基类有所发展。三、继承方式对基类成员的访问控制继承方式有三种:publicprivateprotected,不同的继承方式会导致原来具有不同访问属性的基类成员在派

6、生类中的访问属性也有所不同。这种访问包括两个方面:一是派生类中新增成员对从基类继承来的成员的访问;二是在派生类的外部通过派生类的对象对从基类继承来的成员的访问。1公有继承2私有继承3保护继承参见下表:存取方式与继承的关系:继承类型存储类型publicprotectedprivatepublicpublicprotected不可用protectedprotectedprotected不可用privateprivateprivate不可用举例例如:classBase{public:intm1;protected:intm2;private:intm3;};classPrivateClas

7、s:privateBase{public:voidtest(){m1=1;m2=2;m3=3;}};classDerivedFromPri:publicPrivateClass{public:voidtest(){m1=1;m2=2;m3=3;}};classProtectedClass:protectedBase{public:voidtest(){m1=1;m2=2;m3=3;}};classDerivedFromPro:publicProtected

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

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

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