继承

开发工具与关键技术: Visual Studio / C++
作者:何文涛
撰写时间:2019-5-15

C++继承:
继承是类之间定义的一种重要关系,继承可以利用已有的数据类型来定义新的数据类型。
所定义的新的数据类型不仅拥有新定义的成员,而且还同时拥有旧的成员。我们称已存在的用来派生新类的类为基类,又称为父类。由已存在的类派生出的新类称为派生类,又称为子类。

继承类中基类和派生类的定义:
基类的定义:
和普通类定义一样
class<派生类名>
{
<成员>
};
派生类定义:
后面加上继承方式和基类名。
class<派生类名>:<继承方式><基类名>
{
<派生类新定义成员>
};
任何一个类都可以派生出一个新类,派生类也可以再派生出新类,因此,基类和
派生类是相对而言的。

继承方式:
继承方式有三种,分别是
public 表示公有继承
private 表示私有继承
protected 表示保护继承

特点:
公有继承是基类的公有成员和保护成员作为派生类的成员时,它们都保持原有的状
态,而基类的私有成员仍然是私有的,不能被这个派生类的子类所访问。

私有继承是基类的公有成员和保护成员都作为派生类的私有成员,并且不能被这个
派生类的子类所访问。

保护继承是基类的所有公有成员和保护成员都成为派生类的保护成员,并且只能被它
的派生类成员函数或友元访问,基类的私有成员仍然是私有的。

下面举了个简单继承的例子
如图所示:

继承
继承

图中,声明了一个基类A以及两个派生类B和C。
由于派生类B是继承于基类A所以派生类B不仅仅有自身声明的整型b还继
承了基类的整型a。
而派生类C不仅继承了类B还继承了类A,所以就有了自身整型的c还有从类B
和类A继承过来的a和b。

左边的就是访问,首先定义了类A,B,C的对象 ,需要访问那个类的成员就在
对象后面加个点在然后输入需要访问的成员。

下面是输出的结果,如图所示

继承

图中输出的第一个10是基类定义的a
第二个10是派生类B在基类A继承过来的a,20则是自身定义的变量c
而第剩下来的都是派生类C继承了A和B来的变量。