nakka soft world !

다중 상속 (multiple inheritance), 다이아몬드 상속 본문

프로그래밍언어/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

'프로그래밍언어 > C++' 카테고리의 다른 글

iostream, cin  (0) 2017.03.27
예외 (Exception)  (0) 2017.03.27
RTTI ( Rut Time Type Information ) , dynamic_cast  (0) 2017.03.27
함수 바인딩과 가상함수의 원리  (0) 2017.03.27
추상클래스와 인터페이스  (0) 2017.03.27
Comments