C++学习心得(5)继承与派生
——from 谭浩强.C++面向对象程序设计(第一版)
2014/10/9
面向对象的程序设计的4个主要特点:
抽象、封装、继承、多态性
5.1 继承与派生的概念
在C++中,继承就是在一个已存在的类的基础上建立一个新的类。
一个新类从已有的类那里获得其已有特性,这种现象称为继承。
从已有的类产生一个新的子类,称为类的派生。
一个派生类只从一个基类派生称为单继承;
一个派生类有两个或多个基类称为多继承。
5.2 派生类的声明方式
声明派生类的一般形式为:
<span style="font-family: 'Microsoft YaHei'; background-color: rgb(255, 255, 255);"><strong>class 派生类名: [继承方式] 基类名
{
派生类新增加的成员;
};</strong>
</span>
<span style="font-family: 'Microsoft YaHei'; background-color: rgb(255, 255, 255);">继承方式包括:</span>
public,公用的;
private,私有的;
protected,受保护的;
默认为private。
5.3 派生类的构成
构造一个派生类的3部分工作:
(1)从基类接收成员;接收基类的全部成员,但不包括构造函数和析构函数。
(2)调整从基类接收的成员。指定继承方式调整访问属性。在派生类中声明一个与基类成员同名的成员,则新成员会覆盖基类的同名成员。
(3)在声明派生类时增加成员。自己搞定构造函数和析构函数。
5.4 派生类成员的访问属性
需要考虑的情况:
(4)派生类的成员函数访问基类的成员;
(5)在派生类外访问基类的成员;
三种继承方式:
(1) 公用继承 基类的公用成员和保护成员保持原有的访问属性,其私有成员仍为基类所私有,派生类不可访问。
(2) 私有继承 基类的公用成员和保护成员成为派生私有成员,只有派生类成员函数能够访问,派生类外不能访问,其私有成员仍为基类所私有,派生类不可访问。
(3) 保护继承 公用成员和保护成员成为派生类保护成员,其私有成员仍为基类所私有,派生类不可访问。
保护成员的意思是,不能被外界引用,但可以被派生类的成员引用,有点类似于遗产。
继承 |
新增 |
||||
fun |
fun |
||||
public |
private |
protected |
public |