C++03標準は§1.8[intro.object]/4を述べています:
完全なオブジェクト、データメンバー(9.2)、または配列要素がクラスタイプの場合、そのタイプは、基本クラスサブオブジェクトのクラスタイプと区別するために、最も派生したクラスと見なされます。最も派生したクラスタイプのオブジェクトは、最も派生したオブジェクトと呼ばれます。
誰かが「最も派生したオブジェクト」に光を当てることができますか?いくつかの例をいただければ幸いです。
C++03標準は§1.8[intro.object]/4を述べています:
完全なオブジェクト、データメンバー(9.2)、または配列要素がクラスタイプの場合、そのタイプは、基本クラスサブオブジェクトのクラスタイプと区別するために、最も派生したクラスと見なされます。最も派生したクラスタイプのオブジェクトは、最も派生したオブジェクトと呼ばれます。
誰かが「最も派生したオブジェクト」に光を当てることができますか?いくつかの例をいただければ幸いです。
引用符は、インスタンス化されるオブジェクトのクラスであるほとんどの派生クラスの意味を定義しています。オブジェクトにはさまざまなタイプがありますが、継承はis-a関係をモデル化するため、最も派生したクラスは1つだけになります。
例を挙げて:
class base {};
class derived : base {};
class base2 {};
class mostderived : derived, base2 {};
mostderived md;
オブジェクトmd
はほとんどの派生クラス mostderived
ですが、タイプも、base
もderived
ですbase1
。について話すときmd
、タイプbase
のサブオブジェクト、タイプのサブオブジェクト(タイプderived
のサブオブジェクトを含むbase
)、およびタイプのサブオブジェクトがありますが、タイプの最も派生しbase2
たオブジェクトは1つだけです。md
mostderived