複数の基本クラス
多重継承 に説明されているようにクラスは複数の基本クラスから取得できます。複数の継承モデルではクラスが複数の基本クラスから派生します)。基本クラスは ベース 文法 リスト 要素を使用して指定します (概要 の文法 " " を参照してください)。たとえばCollection と Book から派生した CollectionOfBook のクラス宣言を指定できます :
// deriv_MultipleBaseClasses.cpp
// compile with: /LD
class Collection {
};
class Book {};
class CollectionOfBook : public Book, public Collection {
// New members
};
基本クラスを指定する順序はコンストラクターとデストラクターが呼び出される場合一部の場合を除き重要ではありません。この場合基本クラスを指定する順序は次に影響します :
コンストラクターで初期化が発生する順序。Collection の部分は特定の順序が重要になる前にコードが初期化される CollectionOfBook の Book の部分に依存します。初期化はクラスが リスト に指定されている順序で発生します。
デストラクターをクリーンアップするために呼び出される順序。もう一度クラスの特定の部分 「」の他の部分が破棄される場合順序は重要です。デストラクターは ベース リスト で指定されたクラスの逆の順序で呼び出されます。
[!メモ]
基本クラスの順序はクラスのメモリ レイアウトに影響を及ぼすことがあります。メモリの基礎メンバーの順序に基づいてプログラム確認を使用します。
ベース一覧を 指定すると同じクラス名を複数回指定できません。ただしクラスが派生クラスに間接基本クラスであることが複数回できます。