Post

다이아몬드 상속 문제(Diamond Inheritance Problem) - C++/C#/CS 기초

다이아몬드 상속 문제(Diamond Inheritance Problem)

📌 개념 정리

  • 다중 상속 시 공통 조상 클래스가 중복 포함되는 문제.
  • 메모리 중복, 호출 모호성 발생.

💻 예제

1
2
3
4
5
6
7
8
9
10
class A {E};
class B : public A {E override};
class C : public A {E override};
class D : public B, public C {}; // A 중복됨


->

A* d = new D();
d->E;

해결 → 가상 상속

1
2
3
class B : virtual public A {};
class C : virtual public A {};
class D : public B, public C {}; // A 1번만 포함

⚡ 주의점

🔗 관련 페이지

This post is licensed under CC BY 4.0 by the author.