"most derived object"是什么意思?

What does the "most derived object" mean?

本文关键字:意思 是什么 object most derived      更新时间:2023-10-16

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

如果一个完整的对象、一个数据成员(9.2)或一个数组元素为类类型,其类型被认为是最派生的类将它与任何基类子对象的类类型区分开来;一派生最多的类类型的对象称为派生最多的对象。

有人能阐明"最衍生的物体"吗?举几个例子将不胜感激。

引号将最派生类的含义定义为被实例化对象的类。虽然一个对象可以是许多类型,但作为继承模型的是一个关系,它将只有一个派生最多的类

举个例子:

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

对象md属于最派生类mostderived,尽管它也属于类型basederivedbase1。当谈到md时,有一个类型为base的子对象、一个类型derived的子对象(包括类型base的子对象)和一个类型base2的子对象,但只有一个最派生的对象,即类型mostderivedmd