다이아몬드 상속 문제(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.