死のダイヤモンド


複数の継承


マルチ継承とは、1つのクラスが複数のクラスを継承することです.코드
class GrandParent
{
    // 생략
};

class Parent
{
    // 생략
};


class Child : public Parent, public GrandParent // 두 개의 클래스를 다중 상속
{
    // 생략
};

死のダイヤモンド



上の図に示すように、「ComboDrive」というクラスが2つのクラスを継承しています.2つの継承されたクラスは、共通のクラスを継承します.この場合、最上位レベルにあるDigitalRecorderクラスのフィールドとメソッドが重複します.これは「死のダイヤモンド」と呼ばれています.정리
  • 1 1つのクラスが2つ以上を継承するクラスを多重継承と呼ぶ.
  • 多重継承の2つ以上のクラスは、1つのクラスを継承する際に死亡ダイヤモンドと呼ばれる.
  • 死亡ダイヤモンドが発生すると、どのレベルで最高レベルのメンバーに近づくかという曖昧な問題が発生します.