다중 상속의 문제점

|
#다중 상속의 문제점
1. 상속받은 두 클래스에 같은 이름의 함수가 있을 경우, 어느 함수를 호출해야 할 지 알 수 없다.

>>어느 클래스의 함수인지 명시한다.
>>객체.부모클래스::멤버함수();

2. B가 A를 상속받고, C도 A를 상속 받은 후, D가 B와 C를 상속 받는 경우, A가 두 번 포함된다. (다이아몬드 상속)

>>B와 C가 A를 virtual 상속받는다.
>>class B : virtual public A {...}
>>class C : virtual public A {...}
>>class D : public B, public C {...}
D에서 A의 멤버 함수를 사용하려면 B::멤버 함수 또는 C::멤버 함수로 사용하여야 한다.
A::멤버 함수로는 사용할 수 없다. B와 C가 virtual로 A를 상속받았기 때문이다.

'C++' 카테고리의 다른 글

C++ 생성자  (0) 2010.08.13
생성자와 소멸자  (0) 2010.08.13
c++ 오버라이딩  (0) 2010.07.03
동적 할당 0614  (0) 2010.06.14
c++ 0610  (0) 2010.06.10
And