C ++ 03标准规定§1.8[intro.object] / 4:
如果是完整对象,数据成员(9.2)或数组元素 类类型,其类型被认为是派生类最多的类 将它与任何基类子对象的类类型区分开来;一个 最派生类类型的对象称为派生程度最高的对象。
任何人都可以对“最衍生的对象”有所了解吗?一些例子将非常感激。
答案 0 :(得分:14)
引用是将大多数派生类的含义定义为要实例化的对象的类。虽然对象可以是多种类型,但是继承模型是-a 关系,它只有一个最多派生类。
举个例子:
class base {};
class derived : base {};
class base2 {};
class mostderived : derived, base2 {};
mostderived md;
对象md
属于大多数派生类 mostderived
,但它也属于base
,derived
和{{1}类型}。在谈论base1
时,有一个类型为md
的子对象,一个类型为base
的子对象(包括类型为derived
的子对象),以及一个类型为base
的子对象{1}},但只有一个大多数派生对象是base2
类型的md
。