“最衍生的对象”是什么意思?

时间:2012-09-03 03:25:41

标签: c++

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

  

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

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

1 个答案:

答案 0 :(得分:14)

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

举个例子:

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

mostderived md;

对象md属于大多数派生类 mostderived,但它也属于basederived和{{1}类型}。在谈论base1时,有一个类型为md的子对象,一个类型为base的子对象(包括类型为derived的子对象),以及一个类型为base的子对象{1}},但只有一个大多数派生对象base2类型的md