- 1、本文档共121页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第4篇面向对象的程序设计 第11章 继承与派生 第12章 多态性与虚函数 第13章 输入输出流 第14章 C++工具 第11章 继承与派生 11.1 继承与派生的概念 11.2 派生类的声明方式 11.3 派生类的构成 11.4 派生类成员的访问属性 11.5 派生类的构造函数和析构函数 11.6 多重继承 11.7 基类与派生类的转换 11.8 继承与组合 11.9 继承在软件开发中的重要意义 面向对象程序设计有4个主要特点: 抽象、封装、继承和多态性。 要较好地进行面向对象程序设计,还必须了解面向对象程序设计另外两个重要特征——继承性和多态性。在本章中主要介绍有关继承的知识,在第12章中将介绍多态性。 面向对象技术强调软件的可重用性(software reusability) 。C++语言提供了类的继承机制,解决了软件重用问题。 11.1 继承与派生的概念 在C++中可重用性是通过继承(inheritance)这一机制来实现的。继承是C++的一个重要组成部分。 一个类中包含了若干数据成员和成员函数。在不同的类中,数据成员和成员函数是不相同的。但有时两个类的内容基本相同或有一部分相同。 利用原来声明的类Student作为基础,再加上新的内容即可,以减少重复的工作量。 C++提供的继承机制就是为了解决这个问题。 在第8章已举了马的例子来说明继承的概念。见图11.1示意。 在C++中,所谓“继承”就是在一个已存在的类的基础上建立一个新的类。已存在的类(例如“马”)称为“基类(base class)”或“父类(father class)”。新建立的类(例如“公马”)称为“派生类(derived class)”或“子类(son class)”。见图11.2示意。 图11.1 图11.2 一个新类从已有的类那里获得其已有特性,这种现象称为类的继承。通过继承,一个新建子类从已有的父类那里获得父类的特性。从另一角度说,从已有的类(父类)产生一个新的子类,称为类的派生。类的继承是用已有的类来建立专用类的编程技术。派生类继承了基类的所有数据成员和成员函数,并可以对成员作必要的增加或调整。一个基类可以派生出多个派生类,每一个派生类又可以作为基类再派生出新的派生类,因此基类和派生类是相对而言的。 以上介绍的是最简单的情况: 一个派生类只从一个基类派生,这称为单继承(single inheritance),这种继承关系所形成的层次是一个树形结构,可以用图11.3表示。 图11.3 请注意图中箭头的方向,在本书中约定,箭头表示继承的方向,从派生类指向基类。 一个派生类不仅可以从一个基类派生,也可以从多个基类派生。一个派生类有两个或多个基类的称为多重继承(multiple inheritance),这种继承关系所形成的结构如图11.4所示。 图11.4 关于基类和派生类的关系,可以表述为: 派生类是基类的具体化,而基类则是派生类的抽象。 图11.5 11.2 派生类的声明方式 假设已经声明了一个基类Student,在此基础上通过单继承建立一个派生类Student1: class Student1: public Student//声明基类是Student {public: void display_1( ) //新增加的成员函数 {cout″age: ″ageendl; cout″address: ″addrendl;} private: int age; //新增加的数据成员 string addr; //新增加的数据成员 }; 基类名前面有public的称为“公用继承(public inheritance)”。 声明派生类的一般形式为 class 派生类名: [继承方式] 基类名 { 派生类新增加的成员 } ; 继承方式包括: public(公用的),private(私有的)和protected(受保护的),此项是可选的,如果不写此项,则默认为private(私有的)。 11.3 派生类的构成 派生类中的成员包括从基类继承过来的成员和自己增加的成员两大部分。在基类中包括数据成员和成员函数(或称数据与方法)两部分,派生类分为两大部分: 一部分是从基类继承来的成员,另一部分是在声明派生类时增加的部分。每一部分均分别包括数据成员和成员函数。 图11.6 实际上,并不是把基类的成员和派生类自己增加的成员简单地加在
您可能关注的文档
- 南京大学商学院MBA《人力资源管理与开发》课件.ppt
- 企业法律实务.ppt
- 第四章 21世纪中国油气资源的可持续发展.ppt
- 第三章 商业银行的组织制度.ppt
- 可靠性原理_孙有朝_第一章可靠性概论.ppt
- Lecture3_系统设计.ppt
- 化工分离过程课件( 陈洪钫,刘家祺编 )第二章 单级平衡过程.ppt
- 高考一轮复习直线运动第一单元课件.ppt
- 电子设计自动化(EDA)概述(第一讲).ppt
- 第6章地下工程围岩稳定地质分析1.ppt
- 中考语文总复习语文知识及应用专题5仿写修辞含句子理解市赛课公开课一等奖省课获奖课件.pptx
- 湖南文艺版(2024)新教材一年级音乐下册第二课《藏猫猫》精品课件.pptx
- 湖南文艺版(2024)新教材一年级音乐下册第三课《我向国旗敬个礼》精品课件.pptx
- 高中生物第四章生物的变异本章知识体系构建全国公开课一等奖百校联赛微课赛课特等奖课件.pptx
- 整数指数幂市公开课一等奖省赛课微课金奖课件.pptx
- 一年级音乐上册第二单元你早全国公开课一等奖百校联赛微课赛课特等奖课件.pptx
- 八年级数学上册第二章实数27二次根式第四课时习题省公开课一等奖新课获奖课件.pptx
- 九年级物理全册11简单电路习题全国公开课一等奖百校联赛微课赛课特等奖课件.pptx
- 八年级语文下册第五单元19邹忌讽齐王纳谏省公开课一等奖新课获奖课件.pptx
- 2024年秋季新人教PEP版3年级上册英语全册教学课件 (2).pptx
文档评论(0)