14

C++03 标准规定 §1.8 [intro.object]/4:

如果一个完整的对象,一个数据成员(9.2),或者一个数组元素是类类型,它的类型被认为是最派生的类,以区别于任何基类子对象的类类型;最派生类类型的对象称为最派生对象。

任何人都可以对“最衍生的对象”有所了解吗?一些例子将不胜感激。

4

1 回答 1

15

引用将大多数派生类的含义定义为被实例化的对象的类。虽然一个对象可以有多种类型,但作为继承模型的is-a关系,它只有一个最派生类

举个例子:

class base {};
class derived : base {};
class base2 {};
class mostderived : derived, base2 {};

mostderived md;

该对象md属于大多数派生类mostderived尽管它也属于 和类型。在谈论时,有一个 type的子对象,一个 type 的子对象(包括 type 的子对象)和一个 type 的子对象,但只有一个最派生的 object是type 。basederivedbase1mdbasederivedbasebase2mdmostderived

于 2012-09-03T03:51:40.920 回答