2012-09-03 10 views
7

C++ 03標準状態§1.8[intro.object]/4:"最も派生したオブジェクト"は何を意味しますか?

は完全なオブジェクト、データメンバ(9.2)の場合、または配列要素は、そのタイプが クラス型のものです最も派生したクラスと見なして、 とすると、それは任意の基本クラスのサブオブジェクトのクラスタイプと区別されます。最も派生したクラス型の オブジェクトは、最も派生したオブジェクトと呼ばれます。

"最も派生したオブジェクト"について誰かに光を当てることはできますか?いくつかの例は非常に高く評価されます。

答えて

12

引用符はの意味を定義しており、ほとんどの派生クラスはインスタンス化されるオブジェクトのクラスになります。オブジェクトはの多くはタイプであることができますが、継承モデルとしてはは-の関係です。という最も派生したクラスはです。例で

:それはタイプbasederivedbase1でもあるが

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

mostderived md; 

オブジェクトmdは、最も派生クラスmostderivedです。約mdを話すとき、タイプbaseのサブオブジェクトがあり、タイプderivedのサブオブジェクト(すなわち、タイプbaseのサブオブジェクトを含む)、およびタイプbase2のサブオブジェクトが、一方のみ最も派生オブジェクトタイプmostderivedmdある

関連する問題