[计算机软件及应用]第7章 继承.pptVIP

  1. 1、本文档共47页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
[计算机软件及应用]第7章 继承

第7章 继承 C++程序设计 继承与派生的概念 继承,就是在一个已有类的基础上建立一个新类,已有的类称为“基类”或“父类”,新建立的类称为“派生类”或“子类” 继承是一个重要的概念,它同时也是程序设计中的一个有效的工具,较好地解决了代码重用问题 实现继承的方法是类的派生,派生类提供了扩展或定制基类特性的简单手段,不需要重新来创建基类本身;任何一个类都可以作为基类,从这个基类可以派生出多个类,这些派生的类不仅具有基类的特征,而且还可以定义自己独有的特征。程序员可以通过类的派生来构造可重用的类库。 如果一个派生类只从一个基类派生,称为单继承; 如果一个派生类从多个基类派生,称为多重继承 关于继承的几点说明: ① 如果子类继承了父类,则子类自动具有父类的全部数据成员(数据结构)和成员函数(功能);但是,子类对父类成员的访问有所限制。 ② 子类可以定义自己的成员是数据成员和成员函数。 ③ 基类、派生类或父类、子类都是“相对”的。一个类派生出新的类就是基类。派生类也可以被其他类继承,这个派生类同时也是基类。 派生类的定义 语法格式如下: class 派生类名 : [继承方式] 基类名 { 新增私有成员声明语句列表 public: 新增公有成员声明语句列表 protected: 新增保护成员声明语句列表 }; 派生类的构成 派生类中的成员包括两部分,一部分是从基类继承过来的成员,一部分是在声明派生类时新增加的成员,每一部分均包括数据成员和成员函数。 派生类要继承基类的所有成员,对基类的继承方式不同,其访问属性也不同 派生类可以在原有基类成员的基础上添加新的成员,也可以更改原有成员属性。若在派生类中声明一个与基类成员同名的新成员,该成员就会覆盖原有的成员;若声明的是同名函数,要保证函数的参数也完全相同 【回顾】类中的成员的不同访问权限 public公有成员: 一个类的公有成员允许本类的成员函数、本类的对象、公有派生类的成员函数、公有派生类的对象访问。 private私有成员: 一个类的私有成员只允许本类的成员函数访问。 protected保护成员: 具有私有成员和公有成员的特性,对其派生类而言是公有成员,对其他而言是私有成员。基类数据成员声明为保护的是有益的,派生类可以自由访问,外部不能访问,既实现了信息重用,又做到了信息隐藏。 派生类的继承方式 继承方式决定了子类对父类的访问权限,有3种继承方式: private、public和protected,默认为private 1.公有继承【例79-1】 当派生类的继承方式是公有继承(public)时,基类的public成员和protected成员的访问属性在派生类中保持不变,基类的private成员被继承到派生类中仍是基类的private成员。 2.私有继承【例79-2】 当派生类的继承方式是私有继承(private)时,基类的public成员和protected成员被继承到派生类中成为private成员,基类的private成员被继承到派生类中仍为private成员 3.保护继承【例79-3】 当派生类的继承方式是保护继承(protected)时,基类的public成员和protected成员被继承到派生类中成为派生类的protected成员,基类的private成员被继承到派生类中仍为private成员。 继承方式与成员的访问属性 派生类的构造函数和析构函数 在派生关系中,构造函数和析构函数是不能继承的,对派生类要重新定义构造函数和析构函数 1、派生类构造函数的定义格式: 派生类名(总参数列表): 基类名(参数列表1),子对象名1(参数列表2),子对象名2(参数列表3),… { 派生类中新增数据成员的初始化语句 } 注意: 1)派生类构造函数可在类中声明,类外定义,声明时不给出基类构造函数名及其参数列表; 2)派生类构造函数定义时,其参数列表既有参数类型也有参数名称,而其后的基类的参数列表只有参数名称; 执行构造函数的顺序是:派生类构造函数先调用基类的构造函数,对基类数据成员初始化,再执行派生类构造函数本身,对派生类数据成员初始化。 包含子对象的派生类构造函数的执行顺序是:派生类构造函数先调用基类的构造函数,对基类数据成员初始化;再调用子对象构造函数,对子对象数据成员初始化,最后执行派生类构造函数本身,对派生类数据成员初始化。 2.派生类的析构函数 派生类析构函数没有函数类型、没有参数,其定义及使用方法与一般类的析构函数相同。派生类的析构函数用来对派生类中所增加的成员进行清理工作,同时系统会自动调用基类的析构函数和子对象的析构函数,对基类和子对象进行清理。 析构函数的调用顺序与构造函数正好相反:先执行派生类的析构函数,然后调用子对象的析构函数,最后调用基类的析构函数

您可能关注的文档

文档评论(0)

qiwqpu54 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档