- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第四章继承和派生
第四章继承和派生4.1继承和派生的概念面向对象程序设计有4个主要特点: 抽象、封装、继承和多态性。在本章中主要介绍有关继承的知识,在下一章中将介绍多态性。C++语言提供了类的继承机制,解决了软件重用问题。4.1.1 继承及派生的概念一个类中包含了若干数据成员和成员函数。在不同的类中,数据成员和成员函数是不相同的。但有时两个类的内容基本相同或有一部分相同。类的继承:一个新类从已存在的类那里获得该类已有的特性叫作类的继承。已存在的类叫作父类,也叫作基类。产生的新类叫作子类或派生类。类的派生:从一个已有的类那里产生一个新类的过程叫类的派生。已存在的类叫作父类,也叫作基类。产生的新类叫作派生类或子类。类的继承和派生是同一概念,前者是从子类的角度来说,后者是从父类的角度来说的。我们通常说子类继承了父类。父类派生了子类。4.1.2 派生类和基类的关系描述各级学生的类的继承关系如下图:基类及派生类的关系:派生类是基类的具体化,基类则是派生类的抽象一个派生类的对象也是一个基类的对象。应该具有基类 的一切属性和方法。派生类除了具有基类的一切属性和方法外,还可以有自 己所特有的属性和方法。4.1.3 单继承及多继承单继承:一个派生类只从一个基类继承。多重继承:一个派生类从两个或多个基类继承。4.2 派生类的声明方式声明派生类的一般形式为class 派生类名: [继承方式] 基类名{ 派生类新增加的成员} ;继承方式包括: public(公有的),private(私有的)和protected(受保护的),此项是可选的,如果不写此项,则默认为private(私有的)。如下程序演示了类Rectangle(四边形)由类Point继承而来。//Point.h#include iostream#include cmathusing namespace std;class Point{private: int x,y;public: int GetX() { return x; } int GetY() { return y; } void SetPoint(int x,int y) { this-x=x; this-y=y; } void MovePoint(int dx,int dy) { x+=dx; y+=dy; } void ShowPoint() { cout(x,y); }};//Rectangle.h#include iostream#include Point.husing namespace std;class Rectangle:public Point{private: int width; int height;public: int GetWidth() { return width; } int GetHight() { return height; }void SetRect(int x,int y,int w,int h) { SetPoint(x,y); width=w; height=h; } void ShowRect() { cout左上角坐标为:; ShowPoint(); coutendl; cout宽为:widthendl; cout长为:heightendl; }};//main.cpp#include Rectangle.hvoid main(){ Rectangle r; r.SetRect(0,0,10,20); r.ShowRect(); r.MovePoint(10,10); r.ShowRect();}4.3 派生类的构成派生类中的成员包括从基类继承过来的成员和自己增加的成员两大部分。在基类中包括数据成员和成员函数(或称数据及方法)两部分,派生类分为两大部分: 一部分是从基类继承来的成员,另一部分是在声明派生类时增加的部分。每一部分均分别包括数据成员和成员函数。如果在派生类中定义了和基类中同名函数(函数参数个数和类型可以相同也可以不相同),则派生类中的函数会隐藏基类的同名函数。在派生类中不能直接访问基类中的同名函数。(注意及重载的区别。在同一个类中的同名不同参函数为重载函数)如程序PointRect1所示:4.4继承方式派生类的继承方式有三种:public,private,protected。不同的继承方式决定了基类成员在派生类中的访问属性。继承方式基类中的访问属性派生类中的访问属性publicpublicpublicprotectedprotectedprivate不可访问privatepublicprivateprotectedprivateprivate不可访问protectedpublicprotectedprotectedprotectedprivate不可访问4.4.1类的保护成员前面介
您可能关注的文档
- -------仿写专项训练.pptx
- 1、算法研究.pptx
- 2-2向量的合成和分解.pptx
- 2.5 静定平面桁架.pptx
- 10.7 Stokes公式.pptx
- 2011年电子商务市场数据.pptx
- 2.3.2 平面向量的正交分解.pptx
- 2 折光率的测定.pptx
- 1.单位制:由 单位和 单位一起.pptx
- 3. 状态空间的分解.pptx
- 2017年上半年全国事业单位联考B类《职业能力倾向测验》题(云南湖北安徽贵州宁夏广西青海内蒙古网友回忆版).docx
- 2012年上海市公务员录用考试《行测》题(B类).docx
- 新中国初期外交建树教学课件.ppt
- 在集团2025年上半年党建、全面从严治党暨党风廉政建设专题会议上的讲话.docx
- 2018年浙江省公务员录用考试《行测》题(B类)(网友回忆版).docx
- 2019年1月天津市定向招录选调生考试综合能力测试试卷(精选).docx
- 2018年上海市公务员录用考试《行测》题(B类)(网友回忆版).docx
- 海上英魂教学课件.ppt
- 战后国际秩序的形成教学课件.ppt
- 2023年上半年事业单位联考D类职测模考大赛.docx
文档评论(0)