- 13
- 0
- 约2.84万字
- 约 39页
- 2018-03-27 发布于河南
- 举报
C++程序设计教程第9章.pdf
第9章 继承与派生 教学提示:C++程序设计语言与现实生活有极大的相似之处,尤其在继承性上表现很
突出。如自然界中,猴子是灵长目的一大类,金丝猴具有了猴子的共有特征,同时又有不
同于其他猴子的漂亮的金色猴毛。类似地,在C++ 中通过称为“继承 Inheritance ”的机制来
模仿这种自然规律。继承机制允许自动从一个或更多的类中继承其特性,行为和数据结构,
允许根据需要进行更具体的定义来建立新类,即派生类。派生类对于基类的继承提供代码
的重用性,而派生类的增加部分提供了对原有代码扩充的改进能力。在 C++ 中,若类B 继
承类 A ,则称B 是 A 的派生类,称A 是 B 的基类。 继承帮助我们从层次上清晰地把握关系,是发现事物本质、解决新问题的常用办法。
C++这种功能的实现有其重要的应用价值。类是 C++程序设计中用来提供封闭的抽象的逻
辑单位。类的每个对象都包含了用于描述自身状态的数据集,并能通过接受特定的消息集
来处理这个数据集,消息是由类接口提供的成员函数定义的。如果使用类集的程序员能通
过增加、修改或替换给定类中的成员函数来扩充或裁剪这个类,以适合于更广泛的应用,
就会极大地增强数据封装的价值,更方便地实现数据交流,从而避免了对资源的重复和浪
费。在不断地探索中集思广益,于是继承出现了,并有了如今这极为重要的地位。 继承是面向对象程序设计中最重要的机制。这种机制改变了过去传统的那种对不再适
合要求的用户定义数据类型进行改写甚至重写的方法,克服了非面向对象程序设计方法对
编写出来的程序无法重复使用而造成资源浪费的缺点。面向对象程序设计的继承机制提供
了无限重复利用程序资源的一种途径。通过C++语言中的继承机制,可以扩充和完善旧的
程序设计以适应新的需求,这样不仅可以节省程序开发的时间和资源,并且为未来程序设
计增添了新的资源。 继承机制为描述客观世界的层次关系提供了直观、自然和方便的描述手段,定义的新
类可以直接继承类库中定义的或其他人定义的高质量的类,而新的类又可以成为其他类设
计的基础,这样软件重用就变得更加方便、自然。 本章重点介绍:基类和派生类、单继承、多继承、虚基类。 学习目标: 掌握派生和继承的相关概念和使用方法; 掌握在继承中构造函数的设计方法和调用顺序; 掌握在继承中析构函数的设计方法和调用顺序; 掌握虚基类的相关概念和使用方法; 掌握运用类的继承和派生的相关知识进行综合程序设计。 ·256 · C++程序设计 9.1 基类与派生类 本节讨论基类和派生类的基本概念。
9.1.1 基本术语 通过继承机制,可以利用已有的数据类型来定义新的数据类型,所定义的新的数据类
型不仅拥有新定义的成员,而且同时还拥有旧的成员。我们称已存在的用来派生新类的类
为基类,又称为父类;由已存在的类派生出的新类称为派生类,又称为子类。 在 C++语言中,一个派生类可以从一个基类派生,也可以从多个基类派生。从一个基
类派生的继承称为单继承,从多个基类派生的继承称为多继承。单继承形成了类的层次,
像一棵倒挂的树;多继承形成一个有向无环图,如图 9.1 和图 9.2 所示。 类 A 类 X 类 Y 类 B 类 C 类 Z 图 9.1 单继承 图 9.2 多继承 继承使基类和派生类之间有了层次关系,并形成了类的树状结构。一个类可以单独存
在,既不从其他类继承,也不被其他类继承。但一旦使用继承机制定义一个类时,它就成
为树状结构中的一个结点,它既可以作为基类被其他类继承,为派生类提供共同的属性和
行为,也可以作为派生类从其他的类继承它们的属性和行为。 C++ 的继承关系有以下几个特点。 1 一个派生类可以有一个或多个基类。只有一个基类时,称为单一继承;有多个基
类时,称为多继承。 2 继承关系可以是多级的,即可以有类 Y 继承类 X 和类 Z 继承类 Y 同时存在。 3 不允许继承循环,例如,不能有类 Y 继承类 X 、类Z 继承类 Y 和类 X 继承类 Z 同
时存在。 4 基类中能够被继承的部分只能是公有成员和保护成员 具体概念将在后面介绍 ,私
有成员不能被继承。
9.1.2 派生类的定义格式 1. 单继承的定义 单继承的定义格式如下: class : ; ; ·256 · 第 9 章 继承与派生 ·257 · 其中, 是新定义的一个类的名字,它是从 中派生的,并且按指定
的 派生的。 常使用如下 3 种关键字给予表示。 public :表示公有基类。 private :表示私有基类。 protected :表示保护基类。 关于这三种继承方式将在后面进行解释。 2. 多继承的定义 多继承的定义格式如下: class : , ,…
您可能关注的文档
- AAN036e_Paints_and_Coatings.pdf
- AA_P-DP_1624_1.0_Process_Data_Sheet_--_Feed_Gas_Cooler__unshifted_.pdf
- ABAQUS connector用法.pdf
- ABAQUS_connector用法.pdf
- ABB Control Builder V2_1.pdf
- ABB(S4C IRB) 机器人操作培训说明书 完整版 .doc
- abba直线导轨样本.pdf
- abb质量流量计FCM2000+chinese+operate+manual.pdf
- Abiotic stress-inducible receptor-like kinases negatively control ABA signaling in Arabidopsis.pdf
- AC-DC医疗电源的选用标准与典型应用方案.docx
- 2026江西南昌市市场监督管理执法稽查局招聘仓库管理人员1人备考题库及一套参考答案详解.docx
- 2026江苏省常州市体育运动学校招聘排球教练1人备考题库及完整答案详解.docx
- 2026江苏苏州张家港农商银行寒假实习招募备考题库及完整答案详解一套.docx
- 2026浙江台州银行1月份招聘备考题库及完整答案详解一套.docx
- 2026江苏扬州市侨城社区(筹)公益性岗位招聘1人备考题库及完整答案详解.docx
- 2026广西桂林市象山区政府招聘编外聘用人员2人备考题库精编答案详解.docx
- 2026江苏南京江北新区退役军人服务中心招聘编外人员6人备考题库及参考答案详解1套.docx
- 2026广西玉林市博白县公安局第一次招聘警务辅助人员29人备考题库及一套完整答案详解.docx
- 2026广西玉林市福绵区樟木供销合作社招聘财务人员2人备考题库精编答案详解.docx
- 2026春季梦想靠岸招商银行西宁分行校园招聘备考题库及答案详解(新).docx
最近下载
- 地下车位租赁协议书通用版.docx VIP
- nsr621rf-d电容器保护测控装置技术使用说明书.pdf VIP
- 19G518-3_门式刚架轻型房屋_钢结构_有吊车_.docx VIP
- 2025公安大学警务硕士真题及答案.docx VIP
- 火电厂烟气脱硫工程调整试运及质量验收评定规程.PDF VIP
- 帝人芳纶应用介绍.doc VIP
- 《黄酒酿造工艺》课件.ppt VIP
- 深度解析(2026)《JBT 8521.2-2025编织吊索 安全性 第2部分:一般用途合成纤维圆形吊装带》:构筑新时代工业安全的核心支柱与前瞻指南.pptx VIP
- 2026房东直租房屋租赁合同.docx VIP
- V03英国深海控制器DSE5220模块操作說明書.pdf
原创力文档

文档评论(0)