単一継承は実装が簡単です。たとえば、C では、継承は次のようにシミュレートできます。
struct Base { int a; }
struct Descendant { Base parent; int b; }
ただし、多重継承では、コンパイラは新しく構築されたクラス内に複数の親を配置する必要があります。それはどのように行われますか?
私が見ている問題は、両親がABまたはBAに配置されるべきか、それとも他の方法で配置されるべきかということです. そして、キャストを行うと:
SecondBase * base = (SecondBase *) &object_with_base1_and_base2_parents;
コンパイラは、元のポインターを変更するかどうかを検討する必要があります。バーチャルでも同様のトリッキーなことが必要です。