죽음의 다이아몬드

1642 단어 cppcpp

다중 상속

다중 상속이란 하나의 클래스가 두 개 이상의 클래스를 상속 받는 것을 말합니다.

코드

class GrandParent
{
    // 생략
};

class Parent
{
    // 생략
};


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

죽음의 다이아몬드

위 그림과 같이 'ComboDrive'라는 클래스가 두 개의 클래스를 상속 받고 있습니다. 그리고 상속 받는 두 개의 클래스가 하나의 공통된 클래스를 상속 받습니다. 이 경우, 최상단에 위치한 'DigitalRecorder' 클래스의 필드와 메소드가 중첩되는 현상이 발생합니다. 이것을 '죽음의 다이아몬드'라고 합니다.

정리

  • 하나의 클래스가 두 개 이상의 클래스를 상속 받는 것을 다중 상속이라고 한다.
  • 다중 상속받은 두 개 이상의 클래스가 하나의 클래스를 상속할 때 죽음의 다이아몬드라고 한다.
  • 죽음의 다이아몬드가 발생하면 어느 클래스를 통해서 최상위 클래스의 멤버에 접근할 것인지 모호한 문제가 발생한다.

좋은 웹페이지 즐겨찾기