电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本
换一换
首页 金锄头文库 > 资源分类 > PPT文档下载
分享到微信 分享到微博 分享到QQ空间

程序设计基础-继承机制

  • 资源ID:54842173       资源大小:339.50KB        全文页数:89页
  • 资源格式: PPT        下载积分:20金贝
快捷下载 游客一键下载
账号登录下载
微信登录下载
三方登录下载: 微信开放平台登录   支付宝登录   QQ登录  
二维码
微信扫一扫登录
下载资源需要20金贝
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
如填写123,账号就是123,密码也是123。
支付方式: 支付宝    微信支付   
验证码:   换一换

 
账号:
密码:
验证码:   换一换
  忘记密码?
    
1、金锄头文库是“C2C”交易模式,即卖家上传的文档直接由买家下载,本站只是中间服务平台,本站所有文档下载所得的收益全部归上传人(卖家)所有,作为网络服务商,若您的权利被侵害请及时联系右侧客服;
2、如你看到网页展示的文档有jinchutou.com水印,是因预览和防盗链等技术需要对部份页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有jinchutou.com水印标识,下载后原文更清晰;
3、所有的PPT和DOC文档都被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;下载前须认真查看,确认无误后再购买;
4、文档大部份都是可以预览的,金锄头文库作为内容存储提供商,无法对各卖家所售文档的真实性、完整性、准确性以及专业性等问题提供审核和保证,请慎重购买;
5、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据;
6、如果您还有什么不清楚的或需要我们协助,可以点击右侧栏的客服。
下载须知 | 常见问题汇总

程序设计基础-继承机制

1,程序设计是计算机学科的,核心和灵魂,程序设计基础,第七章 继承机制,2,继承机制的作用继承成员的访问控制规则继承成员的调整类型兼容性类层次中的构造函数与析构函数多重继承重复继承,3,§7.1 继承的基本概念,7.1.1 IS-A关系 IS-A关系:组织和表达知识,将知识组织成为一种有层次、可分类的结构。鸭梨是一种(IS-A)梨。 鸭梨具有梨都具有的特征; 鸭梨与其他梨有不同的特征。动物分类:界(kingdom)、门(phylum)、纲(class)、目(order)、科(family)、属(genus)、种(species)。,4,§7.1 继承的基本概念,7.1.2 继承机制 继承(inheritance):在一个类或若干已知类的基础上,经过适当的修改、扩充构成一个新类,这个新类具有原来作为基础类的特征。继承是面向对象程序所特有的特征。如果类B继承类A,则类B自动包括了类A中定义的数据成员和成员函数,还可定义类B自己的成员;称类A为类B的父类(parent)、超类(super-class)或基类(base);类B称为类A的子类(child)或派生类(derived-class);祖先类(ancestor):包括了其父类及其父类的祖先类。后代类(descendant):包括了其子类以及子类的后代类。,5,§7.1 继承的基本概念,7.1.2 继承机制 类的图形表示(UML):,类名,类名,类名,类名,属性,属性,行为,行为,具体,抽象,6,§7.1 继承的基本概念,7.1.2 继承机制 类层次表示(UML):,秦冠苹果,国光苹果,水果,苹果,梨,红富士苹果,7,§7.1 继承的基本概念,7.1.2 继承机制 IS-A与HAS-A,轮胎,汽车,真空轮胎,轮胎,8,§7.1 继承的基本概念,7.1.3 继承的作用 继承机制的双重作用: 类的构造机制:继承通过扩充、组合先有类来构造新的类。 扩充:形成先有类的特例派生类; 组后:抽取若干现有类的共性形成新的抽象层次基类。类的构造机制:如果类B继承类A,则要求对象为A类型的地方也可以接受B类型的对象。 7.1.4 继承与软件重用软件重用: 重用专家的经验;重用标准的设计与算法; 重用类库与过程(函数)库;重用语言和操作系统中内置的强大的命令;重用框架;重用完整的应用(程序)。重用程序源代码: 利用继承机制组织类之间的组织关系; 派生类具有调节所继承的属性和行为的能力; 提高程序可靠性。,9,§7.1 继承的基本概念,7.1.5 C+继承常见的几种形式,D,A,B,C,A,B,C,A,B,C,D,单重继承,多重继承,重复继承,10,§7.2 C+的继承机制,7.2.1 继承的语法 继承是类与类之间的一种关系 定义:“类B继承类A”, 或者说“类A派生类B” 图解为: 则在类B中除了自己定义的成员之外,还自动包括了类A中定义的数据成员与成员函数,这些自动继承下来的成员称为类B的继承成员。,B,A,基类,派生类,11,7.2.1 继承的语法 继承的语法 class 派生类名: 基类类名表public: 公有成员说明列表;protected: 受保护成员说明列表;private: 私有成员说明列表; 其中基类类名表的格式为:access 基类类名1, , access 基类类名n access为继承访问控制符,规定了派生类对基类的继承方式,可为public,private或者protected, 继承访问控制符可省略,此时认为是private,§7.2 C+的继承机制,12,class BASE ; class A:public BASE / 单继承 ; class B:private BASE, public D / 多重继承 ; class C:public A, B ;,BASE,A,B,D,BASE,C,私有派生,§7.2 C+的继承机制,7.2.1 继承的语法,13,§7.2 C+的继承机制,7.2.1 继承的语法 保护访问控制属性:protected 在protected后定义的是保护段,其中的数据成员或成员函数称为受保护成员:具有公有成员与私有成员的双重角色。 一个类的受保护成员,对于其子孙类(派生类)的成员函数来说是公有的,对类本身及后代类之外定义的其他函数则是私有成员。 例: class BASE private: int x; protected: int i, j; ; class D:public BASE void make(); ; void D:make() int k = i* j ; ,14,7.2.1 继承的语法派生类可以重新定义基类的成员函数,覆盖基类的同名函数 例: class DATE public: DATE(int yy = 0, int mm = 0, int dd = 0); / 构造函数void set_date(int yy, int mm, int dd); / 设置日期 void get_date(int ,§7.2 C+的继承机制,15,7.2.1 继承的语法class EUROPE_DATE: public DATE public: void print_date(); / 以欧洲格式(dd-mm-yy)打印日期void print(int isANSI); ; void EUROPE_DATE:print_date() / 以欧洲格式(dd-mm-yy)打印日期cout<< day <<“-”<<month<< “-”<<year<<“n”; ,§7.2 C+的继承机制,16,7.2.1 继承的语法通过类名限定符在派生类中使用基类的同名成员void EUROPE_DATE:print(int isANSI) if (isANSI) DATE:print_date();else print_date(); void main() EUROPE_DATE test ;test.print_date(); /调用EUROPE_DATE中重定义的同名函数/以欧洲格式(dd-mm-yy)打印test.DATE:print_date(); /以ANSI格式(yy.mm.dd)打印 ,§7.2 C+的继承机制,17,7.2.1 继承的语法/ 程序:TIME.HPP / 功能:带有日期信息的时间类的类界面Class TIME: public DATE public:TIME(int hh, int mm, int ss);void set_time(int hh, int mm, int ss);void get_time(int hh, int mm, int ss);void print_time(); Protected:int hour,minute,second; ;,§7.2 C+的继承机制,DATE,EUROPE_DATE,TIME,18,§7.2 C+的继承机制,7.2.2 继承访问控制规则 公有继承(公有派生)、私有继承、保护继承无论采用什么派生的方式,派生类中都不能访问基类的私有成员,19,7.2.2 继承访问控制规则class BASEprotected: int i, j;public: void get_ij();private: int x_temp; ;class Y1:public BASE / 公有派生:在Y1类中,i、j是受保护成员float yMember; / get_ij()是公有成员 ;class Y2:protected BASE / 保护派生:在Y2类中,i、j是受保护成员 / get_ij()变成受保护成员 ;class Y3:private BASE / 私有派生:在Y3类中,i、j、 get_ij()都变 / 成私有成员 ;,§7.2 C+的继承机制,20,7.2.3 一个应用继承机制的完整例子 简单图形程序设计,§7.2 C+的继承机制,CPoint,int m_x;int m_y;,int GetX();int GetY();,CRectangle,CPoint m_cpLocation;int m_nWidth;int m_nHeight;,int GetArea();int GetPerimeter();CPoint,CSquare,int GetEdge();,21,7.2.3 一个应用继承机制的完整例子 #include #include class CPoint private:int m_x;int m_y;public:CPoint(int, int);int GetX();int GetY(); ;,§7.2 C+的继承机制,CPoint:CPoint(int x, int y) m_x=x; m_y=y; int CPoint:GetX() return m_x; int CPoint:GetY() return m_y; ,22,7.2.3 一个应用继承机制的完整例子 class CRectangle /矩形类 public:CPoint m_cpLocation; /图形所在位置int m_nWidth; /图形的宽度int m_nHeight; /图形的高度CRectangle(int nX, int nY, int nWidth, int nHeight);int GetArea(); /求面积int GetPerimeter(); /求周长CPoint,§7.2 C+的继承机制,23,7.2.3 一个应用继承机制的完整例子CRectangle:CRectangle(int nX,int nY,int nW,int nH):m_cpLocation(nX,nY) m_nWidth=nW;m_nHeight=nH; int CRectangle:GetArea() return m_nWidth*m_nHeight; int CRectangle:GetPerimeter() return m_nWidth+m_nWidth+m_nHeight+m_nHeight; CPoint ,§7.2 C+的继承机制,24,7.2.3 一个应用继承机制的完整例子class CSquare : public CRectangle /正方形类,派生自矩形类 public:CSquare(int nX, int nY, int nEdge);int GetEdge(); /返回边长 ;CSquare:CSquare(int nX, int nY, int nEdge) : CRectangle(nX, nY, nEdge, nEdge) int CSquare:GetEdge() return m_nWidth; ,§7.2 C+的继承机制,25,7.2.3 一个应用继承机制的完整例子void main() CRectangle r(1,1,2,3);CSquare s(0,0,2);cout<<“Rectangle area: “<<r.GetArea()<<endl;cout<<“Square area: “<<s.GetArea()<<endl;getch(); ,§7.2 C+的继承机制,程序运行结果:Rectangle area: 6Square area: 4,26,7.2.4 派生类对象的存储组织 派生类的对象不仅存放了在派生类中定义的非静态数据成员,而且也存放了从基类中继承下来的非静态数据成员。 例: class BASEprotected: int i, j;public: void get_ij();private: int x_temp; ;class Y1:public BASE float yMember; ;BASE obj1; Y1 obj2;,

注意事项

本文(程序设计基础-继承机制)为本站会员(bin****86)主动上传,金锄头文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即阅读金锄头文库的“版权提示”【网址:https://www.jinchutou.com/h-59.html】,按提示上传提交保证函及证明材料,经审查核实后我们立即给予删除!

温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.