프로그래밍언어/C++
다중 상속 (multiple inheritance), 다이아몬드 상속
nakka
2017. 3. 27. 19:17
728x90
다중 상속 (multiple inheritance)
struct A
{
int a;
};
struct B
{
int a;
int b;
};
struct C : public A, public B
{
int a;
int b;
int c;
};
int main()
{
C ccc;
ccc.a = 10; // error
ccc.A::a = 10; // ok
ccc.B::a = 10;
}
다이아몬드 상속
struct X
{
int x;
};
struct A : virtual public X // 가상상속, x 가 메모리 영역에 두번 들어 가지 앟고 한번만 들어 감
{
int a;
};
struct B : virtual public X // 가상상속, x 가 메모리 영역에 두번 들어 가지 앟고 한번만 들어 감
{
int b;
};
struct C : public A, public B
{
int c;
};
int main()
{
C ccc;
}
728x90