重複の可能性:
C++ では、仮想基底クラスとは何ですか?
仮想継承
仮想基本クラスのコンストラクターがほとんどの派生クラスから呼び出されるのはなぜですか...そして継承階層では、最初に仮想基本クラスへのオブジェクトが作成されます...これの背後にあるロジックは何ですか?
仮想継承を使用してダイヤモンド構造のように仮想継承を使用すると、最も基本的なクラスのコピーが1つだけ作成されることを理解していますが、線形継承で仮想が正確に何をしているのか。
class A{};
class B : virtual public A {};
class C : virtual public B {};
この種の継承を使用して、実際に何を達成しようとしているのでしょうか?
また、仮想継承の場合のオブジェクト レイアウトは何ですか?
誰かが C++ でのこの種の動作の背後にあるロジックを説明できますか?