深入了解C++继承

作者: 2024-05-10 16:00:49
标签:

一、继承(Inheritance)

C++中的继承(inheritance)是一种很有用的特性,它允许一个类(派生类)继承另一个或多个类(基类)的所有内容,包括数据成员和成员函数(存取权限另当别论)。如果直接继承自一个基类,则称为单一继承;如果直接继承自多个类,则称为多重继承。语法如下(以下是三层单一继承):

然后我们可以这样使用它们:

我们在CPint3d对象中使用继承而来的x()和y()函数,这两个函数将存取继承而来的_x和 _y数据。继承的最大用意,在于表现对象世界中is a kind of(或说is a)的关系。以本例CPoint3d对象为例,其结构示意图如下:

C++语言支持三种继承:

1. 单一继承(single Inheritance):直接基类只有一个。

2. 多重继承(Multiple Inheritance):直接基类不止一个。

3. 虚拟继承(Virtual Inheritance):在多重继承下,让共同的“祖父级”基类对象能够被共享,不至于浪费内存空间。

二、单一继承(single Inheritance)

所谓单一继承,就是每一个类的直接基类只能有一个,继承的层级数目并没有限制。上例的CPoint、CPoint2d、CPoint3d一脉相传就是一种单一继承:

三、多重继承(Multiple Inheritance)

所谓多重继承,就是每一个类的直接基类不止一个,多重继承的语法如下:

四、虚拟继承(Virtual Inheritance)

所谓虚拟继承,就是在类头中,在基类的前方加上virtual关键字,如下所示:

五、继承体系下的对象构造和析构

1. 继承体系下的对象构造顺序是:先内后外,先上后下;

2. 继承体系下的对象析构顺序是:先外后内,先下后上;

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。

相关阅读

最新游戏 更多