继承与派生ppt课件.ppt

继承与派生ppt课件.ppt

ID:50762606

大小:900.00 KB

页数:74页

时间:2020-03-14

继承与派生ppt课件.ppt_第1页
继承与派生ppt课件.ppt_第2页
继承与派生ppt课件.ppt_第3页
继承与派生ppt课件.ppt_第4页
继承与派生ppt课件.ppt_第5页
资源描述:

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

1、第七章继承与派生C++语言程序设计1本章主要内容类的继承与派生类成员的访问控制单继承与多继承派生类的构造、析构函数类成员的标识与访问2类的继承与派生继承就是从先辈处得到属性和行为特征。类的继承是新类从已有类那里得到已有的特性。在已有类的基础上新增自己的特性而产生新类的过程称为派生。被继承的已有类称为基类(或父类)。派生出的新类称为派生类(或子类)。3继承与派生问题举例类的继承与派生4继承与派生问题举例类的继承与派生5继承与派生问题举例类的继承与派生6继承与派生问题举例类的继承与派生7继承与派生的目的继承的目的:实现代码重用。派生的目的:当新的问题出现,原有程序无法解

2、决(或不能完全解决)时,需要对原有程序进行改造。类的继承与派生8派生类的声明class派生类名:继承方式基类名{成员声明;}类的继承与派生9类的继承与派生派生类的生成过程吸收基类成员将基类的成员全盘接收,派生类包含全部基类中除构造和析构函数外的所有成员。基类的构造和析构函数不被继承。改造基类成员一是基类成员的访问控制问题,主要由派生类定义时的继承方式控制。第二是对基类成员的覆盖,即在派生类中声明一个和基类数据或函数成员同名的成员。添加新的成员这是继承与派生机制的核心,是保障派生类在功能上有所发展的关键。10继承方式不同继承方式的影响主要体现在:派生类成员对基类成员的

3、访问权限通过派生类对象对基类成员的访问权限三种继承方式公有继承私有继承保护继承缺省时为私有继承。类成员的访问控制11公有继承(public)基类的public和protected成员的访问属性在派生类中保持不变,但基类的private成员不可直接访问。派生类中的成员函数可以直接访问基类中的public和protected成员,但不能直接访问基类的private成员。通过派生类的对象只能访问基类的public成员。类成员的访问控制12例7-1公有继承举例classPoint//基类Point类的声明{public://公有函数成员voidInitP(floatxx=0

4、,floatyy=0){X=xx;Y=yy;}voidMove(floatxOff,floatyOff){X+=xOff;Y+=yOff;}floatGetX(){returnX;}floatGetY(){returnY;}private://私有数据成员floatX,Y;};类成员的访问控制13classRectangle:publicPoint//派生类声明{public://新增公有函数成员voidInitR(floatx,floaty,floatw,floath){InitP(x,y);W=w;H=h;}//调用基类公有成员函数floatGetH(){ret

5、urnH;}floatGetW(){returnW;}private://新增私有数据成员floatW,H;};1414#include#includeusingnamecpacestd;intmain(){Rectanglerect;rect.InitR(2,3,20,10);//通过派生类对象访问基类公有成员rect.Move(3,2);cout<

6、rivate)基类的public和protected成员都以private身份出现在派生类中,但基类的private成员不可直接访问。派生类中的成员函数可以直接访问基类中的public和protected成员,但不能直接访问基类的private成员。通过派生类的对象不能直接访问基类中的任何成员。类成员的访问控制16例7-2私有继承举例classRectangle:privatePoint//派生类声明{public://新增外部接口voidInitR(floatx,floaty,floatw,floath){InitP(x,y);W=w;H=h;}//访问基类公有成

7、员voidMove(floatxOff,floatyOff){Point::Move(xOff,yOff);}floatGetX(){returnPoint::GetX();}floatGetY(){returnPoint::GetY();}floatGetH(){returnH;}floatGetW(){returnW;}private://新增私有数据floatW,H;};类成员的访问控制17#include#includeusingnamecpacestd;intmain(){//通过派生类对象只能访问本类成员Rectan

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

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

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