新・明解C++で学ぶオブジェクト指向プログラミング | ||||
|
第8章 多重継承
*間接基底クラスとしてであれば、同一のクラスが2個以上含まれてもよい。
class A { /******/ };
class X : public A { /******/ };
class Y : public A { /******/ };
class Z : public X, public Y { /*******/ };
*基底クラス部分オブジェクトは、基底指定子並びの宣言順に初期化される。
*基底クラスに同じメンバがいる場合は、曖昧さを解決しておく。
Base1::print();
Base2::print();
*データメンバーをもたず、仮想関数だけで構成されるクラスは、抽象基底クラスとよばれる。
*多重継承した親同士の間のキャストをクロスキャストと呼ぶ。
クロスキャストには dynamic_cast を使う。
*仮想基底クラスを定義すると、2つ定義されていても実体はひとつになる。
感想
クロスキャストの概念は理解したけど、そこまでやる必要があるケースが浮かばない。。。。