Programming Language/C++

09-2 다중상속

JTesseract 2019. 1. 31. 19:00

1. 다중상속 


다중상속 : 둘 이상의 Class를 동시에 상속하는 것


2. 다중상속의 모호성

-다음 코드와 같이 상속한 Class들에 같은 이름을 가진 Function이 존재할 경우 호출의 대상을 구분해서 명시해야함


3. 가상 상속(Virtual Inheritance)


-다중상속을 하게되면 위의 구조와 같이 Base Class를 2번 간접 상속을 하게 된다.


-다중상속을 한 Class멤버는 2번 간접 상속을 하여 Base Class의 같은 멤버함수가 2개 존재하는 상태


-이를 해결하기 위해서 Virtual Inheritance(가상 상속)을 하게 되면 Base의 멤버함수가 1개만 상속되게 됨

-또한, Base Class의 생성자가 한번만 호출됨(Derived Class의 객체 생성시)