- 7
- 0
- 约5.97千字
- 约 10页
- 2017-08-18 发布于浙江
- 举报
C(谭浩强)笔记(第11章)
继承与派生
在面向对象基础中了解了面向对象程序设计的两个重要特征——抽象和封
装。但是面向对象程序设计主要有4 个特点:抽象、封装、继承和多态,要较好
地进行面向对象的程序设计还必须了解继承和多态。继承性是面向对象程序设计
最重要的特征,面向对象强调软件的可重用性。C++语言提供了类的继承机制,
解决了软件重用问题。
一个类中包含了若干个数据成员和成员函数。在不同类中,数据成员和函数
成员是不同的。但有时两个类的内容基本相同或有一部分相同,例如声明了学生
类Student 和人类Person,具体声明如图1 所示:
图1:Student 类和Person 类的声明
显然,这两个类中有很大一部分内容基本相同,于是我们可以利用原来声明
的Person 类作为基础,在加上新内容,以减少重复的工作量,这就是继承。
一、继承与派生的概念
在C++ 中所谓继承就是在一个已存在的类的基础上建立一个新的类。已存在
的类称为基类或父类(base class or father class),新建立的类称为派生类
或子类(derived class or son class)。
一个新类从已有的类那里获得其已有特性的现象称为类的继承。通过继承,
一个新建子类从父类那里获得父类的特性。换个角度说,从已有类产生一个新的
子类称为类的派生。类的继承是利用已有的类来建立专用类的编程技术。
派生类继承了基类的所有数据成员和函数成员(不包括构造函数和析构函
数),并对成员做必要的增加或调整。一个基类可以派生出多个派生类。每一个
派生类又可以继续派生出新的派生类,这样派生下去就形成了类的继承层次结构。
图1 中的例子是最简单的情况,一个派生类只从一个基类派生,这种继承称
为单继承(singleinheritance)。一个派生类有两个基类或者多个基类,这种继
承称为多重继承(multiple inheritance)。
图2:单继承(single inheritance) 和多重继承(multiple inheritance)
二、派生类的声明方式
图1 中声明的两个类之间显然可以建立继承关系,最简单的继承方式如图3
所示:
图3:派生类Student 类的声明方式
声明派生类的一般形式为
class 派生类名:[继承方式] 基类名
{
派生类新增成员;
};其中继承方式包括 public,private,protected,继承方式可选,如果
不写默认为private。
三、派生类的继承方式
1、公用继承(public inheritance)
在定义一个派生类时将基类的继承方式指定为public 的称为公用继承,用
公用继承方式建立的派生类称为公用派生类(public derived class),其基类称
为公用基类(public base class)。
采用公用继承方式时,基类的公用成员和保护成员在派生类中仍然保持其公
用成员和保护成员的属性,基类的私有成员在派生类中并没有成为派生类的私有
成员,仍然是基类的私有成员,只有基类的成员函数可以访问它。因此,公用基
类的私有成员就成为派生类中的不可访问的成员,如图4 所示。
图4:公用基类中的私有成员不能在派生类中被访问
2、私有继承(private inheritance)
在生命一个派生类时将基类的继承方式指定为private 的,称为私有继承,
用私有继承方式建立的派生类称为私有派生类(private derived class),其基
类称为私有基类(privated base class)。私有基类的公用成员和保护成员在派
生类中的访问属性相当于派生类中的私有成员,即只有派生类的成员函数能够访
问它们,而派生类外不能访问。对于不需要在往下继承的类的功能可以用私有继
承方式将它隐蔽起来,这样,下一层的派生类无法访问它的任何成员。私有基
类的私有成员在在派生类中成为不可访问成员,如图5 所示。
图5:私有继承方式中派生类不能访问基类中的任何成员
3、保护成员和保护继承(protected inheritance)
由protected 声明的成员称为 “受保护的成员”或简称“保护乘员”。受保
护的成员不能在类
您可能关注的文档
- 2017-2023年消防安装和维保行业市场投资战略咨询研究报告(目录).doc
- 2017年北京大学法学诉讼法学专业考研参考书目、报录情况统计、热点专题分享.pdf
- 2017年北京大学法学院各专业考研参考书目及其解析、2016年法律硕士(非法学)联考真题及其解析、录取人数.pdf
- 2017年北京大学法学院各专业考研参考书目及其解析、录取人数、2016年法律硕士(非法学)联考真题及其解析.pdf
- 2017年北京大学法学院各专业考研参考书目及其解析、录取人数、2016年考研真题、就业前景.pdf
- 2017年北京大学法学院各专业考研参考书目及其解析、录取人数、考研真题、复试参考书目.pdf
- 2017年南开大学民商法学考研-2016年891民商法考试大纲 学制.pdf
- 2017年北京大学法学院法学(财税法学)专业考研参考书目、报录情况统计、热点专题分享.pdf
- 2017年北京大学法学院法律史专业考研参考书目及其解析、报录情况统计、热点专题分享.pdf
- 2017年南开大学法学史考研+参考书+考试教材+教材主编+专业排名.pdf
- 安徽省华师联盟2025-2026学年高三上学期1月质量检测生物试卷+答案.doc
- 安徽省华师联盟2025-2026学年高三上学期1月质量检测语文试卷+答案.doc
- 四川省绵阳南山中学实验学校2025-2026学年高三上学期1月月考数学含答案.doc
- 2026届辽宁省大连市高三上学期双基考试物理试卷+答案.doc
- 辽宁名校联盟2026年1月高三上期末联考质量检测化学含答案.doc
- 辽宁名校联盟2026年1月高三上期末联考质量检测生物含答案.doc
- 辽宁名校联盟2026年1月高三上期末联考质量检测英语含答案.doc
- 辽宁名校联盟2026年1月高三上期末联考质量检测政治含答案.doc
- 黑龙江省龙江教育联盟2026年1月高三上学期期末考试化学含答案.doc
- 黑龙江省龙江教育联盟2026年1月高三上学期期末考试生物含答案.doc
最近下载
- 餐厅服务质量保证措施及服务承诺.docx VIP
- 史赛克SFDAI髓内钉系统商品名T中文说明书.pdf VIP
- 2025至2030特种车行业风险投资发展分析及运作模式与投资融资报告.docx VIP
- 监控系统及门禁系统维护方案.docx VIP
- AQ1029-2019 煤矿安全监控系统及检测仪器使用管理规范 (AQ 1029-2019).pdf VIP
- 2026-2031主机游戏市场调查报告.docx VIP
- 《华为组织力:构建持续打胜仗的团队》华为前高管深度解析华为组织底层逻辑-读书笔记.pdf VIP
- 职业健康体检PPT课件.pptx VIP
- 工会会员端午节慰问品采购 投标方案(技术方案).doc VIP
- 2025-2026学年人教版英语七年级上册期末复习.pdf VIP
原创力文档

文档评论(0)