第8章 继承性和派生类ppt课件.ppt

第8章 继承性和派生类ppt课件.ppt

ID:58697865

大小:461.00 KB

页数:91页

时间:2020-10-04

第8章 继承性和派生类ppt课件.ppt_第1页
第8章 继承性和派生类ppt课件.ppt_第2页
第8章 继承性和派生类ppt课件.ppt_第3页
第8章 继承性和派生类ppt课件.ppt_第4页
第8章 继承性和派生类ppt课件.ppt_第5页
资源描述:

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

1、C++程序设计第8章 继承性和派生类8.1基类和派生类8.2单继承8.3多继承8.4虚基类8.5冲突、支配规则和赋值兼容规则主要内容基类和派生类类的继承与派生是指:新类继承了原有类的特征,或者由原有类派生出新类。原有类:基类或父类。新类:派生类或子类。派生新类的过程一般包括三个步骤:吸收原有类的成员;调整原有类的成员;添加新的成员。一、派生类的定义class派生类名:继承方式基类名1,…,继承方式基类名n{派生类成员定义;};基类和派生类单继承:派生类只有一个基类的情况。多继承:派生类同时有多个基类的情况。继承方式:访问控制的方式(public,pr

2、otected,private),缺省情况下,认为是private继承。一个多继承实例:classDr1:publicBase1,privateBase2{public:Dr1();~Dr1();};基类和派生类二、派生类的生成过程1、继承基类成员除构造函数、析构函数之外,其余的所有成员都被继承。2、改造基类成员改造基类成员的访问控制:依靠定义派生类时的继承方式实现。覆盖基类成员:在派生类中定义与基类成员同名的成员,发生同名覆盖。3、添加新成员单继承继承方式2派生类构造函数和析构函数一、公有继承:基类成员与派生类成员的关系:基类派生类public派生

3、黄色:为基类中的私有成员,也为派生类的不可访问成员浅红色:为派生类中特有成员橙色:为基类的公有成员,也成为派生类的公有成员深红色:为基类中的保护成员,也成为派生类的保护成员为基类及派生类、派生子类成员访问为任何类成员访问只为基类成员访问单继承-继承方式基类的私有成员不可访问,基类的其它成员的访问属性不变。例8.1公有继承#include//基类Point类的定义classPoint{public:voidInitP(floatxx=0,floatyy=0){X=xx;Y=yy;}voidMove(floatxOff,float

4、yOff){X+=xOff;Y+=yOff;}floatGetX(){returnX;}floatGetY(){returnY;}private:floatX,Y;};例8.1公有继承例8.1公有继承//派生类声明部分classRectangle:publicPoint{public://新增公有函数成员voidInitR(floatx,floaty,floatw,floath){InitP(x,y);W=w;H=h;}//调用基类公有成员函数给基类私有成员赋值,然后给新增私有成员赋值floatGetH(){returnH;}floatGetW(){

5、returnW;}private://新增私有数据成员floatW,H;};voidmain(void){Rectanglerect;//定义Rectangle类的对象rect.InitR(2,3,20,10);//设置矩形的数据例8.1公有继承rect.Move(3,2);//移动矩形位置cout<<"tThedataofrect(X,Y,W,H):"<

6、dl;cout<<"t";}基类的单继承-继承方式二、私有继承基类的私有成员不可访问,基类的其它成员都以私有成员的身份出现。私有继承基类成员与派生类成员的关系:基类派生类黄色:为基类中的私有成员,也为派生类的不可访问成员蓝色:为派生类中特有成员草绿色:为基类的公有成员,也为派生类的私有成员红色:为基类的保护成员,也为派生类的私有成员private派生为基类及派生类成员访问只为基类及派生类成员访问只为基类成员访问单继承-继承方式#includeclassPoint//基类声明{public:voidInitP(floa

7、txx=0,floatyy=0){X=xx;Y=yy;}voidMove(floatxOff,floatyOff){X+=xOff;Y+=yOff;}floatGetX(){returnX;}floatGetY(){returnY;}private:floatX,Y;};classRectangle:privatePoint//派生类声明{public://新增外部接口例8.2私有继承1例8.2私有继承1voidInitR(floatx,floaty,floatw,floath){InitP(x,y);W=w;H=h;}//派生类访问基类公有成员vo

8、idMove(floatxOff,floatyOff){Point::Move(xOff,yOff);}fl

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

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

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