2012-09-03 73 views
7

的C++ 03標準狀態§1.8[intro.object]/4:「最衍生對象」是什麼意思?

如果一個完整的對象,數據部件(9.2),或陣列元件是 類類型,其類型爲被認爲是最派生的類,以 區分它與任何基類子對象的類類型;大多數派生類類型的對象稱爲最派生對象。

任何人都可以對「最衍生的對象」進行闡述嗎?一些例子將非常感激。

回答

12

該引文將的大部分派生類的含義定義爲被實例化的對象的類。雖然一個對象可以是多個類型,但作爲繼承模型是一個關係,它將只有一個大多數派生類

用一個例子:

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

mostderived md; 

目的md最派生類mostderived的,雖然它是類型basederivedbase1也。在談到md,有base類型的子對象,derived類型的子對象(包括base類型的子對象),和base2類型的子對象,但只有一個最派生對象mostderived類型的md