호빵의 IT 개발소

죽음의 다이아몬드란? 본문

CS(전공지식)/기술면접 준비

죽음의 다이아몬드란?

호빵Stack 2025. 4. 14. 21:00

죽음의 다이아몬드(Deadly Diamond of Death)

  • C++에서 다중 상속 시 발생하는 모호성과 중복 문제를 비유적으로 표현한 용어.
  • 이름은 클래스 상속 구조가 다이아몬드 모양을 형성할 때 생김.
  • *기본 클래스(Base Class)**가 두 번 상속돼서, 최종 파생 클래스에 중복 멤버가 생기고 모호성이 발생함.
  • 해결 방법: 가상 상속 (virtual inheritance) 사용

 

 

면접 스타일 답변 예시:

죽음의 다이아몬드는 C++에서 다중 상속 구조로 인해 발생할 수 있는 상속 모호성 문제를 의미합니다.
예를 들어 클래스 A를 B와 C가 상속하고, D가 B와 C를 동시에 상속하는 경우
A의 멤버가 D에 두 번 포함되면서 어떤 A를 사용할지 컴파일러가 모호해지게 됩니다.
이걸 방지하기 위해 C++에서는 가상 상속(virtual inheritance)을 제공합니다.
B와 C가 A를 virtual로 상속하면 D 클래스는 A의 인스턴스를 단 하나만 상속받게 되어 문제가 해결됩니다.

'CS(전공지식) > 기술면접 준비' 카테고리의 다른 글

더블 버퍼링이란?  (0) 2025.04.14
렌더링 파이프 라인이란?  (0) 2025.04.14
트랜잭션이란?  (0) 2025.04.14
L-Value, R-Value란?  (0) 2025.04.04
static_cast와 dynamic_cast의 차이점은?  (1) 2025.04.03
Comments