14

C++03標準は§1.8[intro.object]/4を述べています:

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

誰かが「最も派生したオブジェクト」に光を当てることができますか?いくつかの例をいただければ幸いです。

4

1 に答える 1

15

引用符は、インスタンス化されるオブジェクトのクラスであるほとんどの派生クラスの意味を定義しています。オブジェクトにはさまざまなタイプがありますが、継承はis-a関係をモデル化するため、最も派生したクラスは1つだけになります。

例を挙げて:

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

mostderived md;

オブジェクトmdほとんどの派生クラス mostderivedですが、タイプも、basederivedですbase1。について話すときmd、タイプbaseのサブオブジェクト、タイプのサブオブジェクト(タイプderivedのサブオブジェクトを含むbase)、およびタイプのサブオブジェクトがありますが、タイプの最も派生しbase2たオブジェクトは1つだけです。mdmostderived

于 2012-09-03T03:51:40.920 に答える