《派生类与继承》PPT课件

《派生类与继承》PPT课件

ID:45546565

大小:494.50 KB

页数:70页

时间:2019-11-14

《派生类与继承》PPT课件_第1页
《派生类与继承》PPT课件_第2页
《派生类与继承》PPT课件_第3页
《派生类与继承》PPT课件_第4页
《派生类与继承》PPT课件_第5页
资源描述:

《《派生类与继承》PPT课件》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第4章派生类与继承4.1继承与派生类4.1.1为什么要使用继承重用:通过继承机制,利用已有的类来定义新类,新的类不仅可以有新的成员,还拥有从已有的类继承来的成员。已有的类称为基类或父类,新的类称为派生类或子类。如果派生类从一个基类派生的,称这种继承为单继承;如果派生类从多个基类派生的,称这种继承为多继承。4.1继承与派生类单继承4.1继承与派生类多继承4.1继承与派生类4.1.2派生类的声明如果不采用派生类方法classperson{protected:charname[10];intage;charsex;public:voidpri

2、nt();};classemployee{protected:charname[10];intage;charsex;chardepartment[20];floatsalary;public:print();};重复书写!!4.1继承与派生类改写//定义一个基类classperson{protected:charname[10];intage;charsex;public://……};//定义一个派生类classemployee:publicperson{protected:chardepartment[20];floatsalary

3、;public://……};4.1继承与派生类声明一个派生类的一般格式为:class派生类名:继承方式基类名{派生类新定义成员};其中,继承方式有3种:public(公有派生)、private(私有派生,缺省情况下也如此)、protected(保护派生)。由类person继承出类employee可以采用下面的三种格式之一:(1)公有继承classemployee:publicperson{//…};(2)私有继承classemployee:privateperson{//…};(3)保护继承classemployee:protected

4、person{//…};4.1继承与派生类派生类的变异功能从已有类派生出新类时,可以在派生类内完成以下几种功能:(1)可以增加新的数据成员;(2)可以增加新的成员函数;(3)可以重新定义基类中已有的成员函数;(4)可以改变现有成员的属性。4.1继承与派生类4.1.3基类成员在派生类中的访问属性在基类中的访问属性继承方式在派生类中的访问属性privatepublic不可直接访问privateprivate不可直接访问privateprotected不可直接访问publicpublicpublicpublicprivateprivatepu

5、blicprotectedprotectedprotectedpublicprotectedprotectedprivateprivateprotectedprotectedprotected4.1继承与派生类不可见可见可见4.1.4派生类对基类成员的访问规则派生类对基类成员的访问形式主要有以下两种:(1)内部访问:由派生类中新增成员对基类继承来的成员的访问。(2)对象访问:在派生类外部,通过派生类的对象对从基类继承来的成员的访问。4.1继承与派生类私有继承的访问规则基类的public成员和protected成员被继承后作为派生类的pr

6、ivate成员,派生类的其他成员可以直接访问它们,但是在类外部通过派生类的对象无法访问。基类的private成员在私有派生类中是不可直接访问的,所以无论是派生类成员还是通过派生类的对象,都无法直接访问从基类继承来的private成员,但是可以通过基类提供的public成员函数间接访问。4.1继承与派生类基类成员private成员public成员protected成员内部访问对象访问不可访问不可访问可访问不可访问可访问不可访问classfath{public:inta,b;intgetx(){returnX;}intgety(){retu

7、rnY;}protected:intc,d;private:intX,Y;};说明:classson:privatefath{intW,H;pubulic:voidlarge();}};等价于classson//{public://voidlarge();}protected:private://intW,H;inta,b;intgetx(){returnX;}intgety(){returnY;}intc,d;fatherprivate:intX,Y;};son:son1;son1可以访问large()son1.large可以访问除了

8、X、Y以外的任何成员4.1继承与派生类例4.1一个私有继承的例子#include"iostream.h"classx{inta;public:x(){a=12;}intget(){returna;}void

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

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

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