C++程序设计教程第9章.pdfVIP

  • 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 : , ,…

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档