다중 기본 클래스
다중 상속에서 설명된 대로 클래스는 둘 이상의 기본 클래스에서 파생될 수 있습니다. 다중 상속 모델(둘 이상의 기본 클래스에서 파생된 클래스)에서 기본 클래스는 base-list 문법 요소(개요의 문법 단원 참조)를 사용하여 지정됩니다. 예를 들어 Collection 및 Book에서 파생된 CollectionOfBook에 대한 클래스 선언을 지정할 수 있습니다.
// deriv_MultipleBaseClasses.cpp
// compile with: /LD
class Collection {
};
class Book {};
class CollectionOfBook : public Book, public Collection {
// New members
};
생성자와 소멸자가 호출되는 특정 경우를 제외하고 기본 클래스가 지정되는 순서는 중요하지 않습니다. 이러한 경우 기본 클래스가 지정되는 순서는 다음에 영향을 줍니다.
생성자에 의한 초기화가 진행되는 순서입니다. 코드가 CollectionOfBook의 Book 부분을 의존하여 Collection 파트 전에 초기화되는 경우 사양의 순서는 중요합니다. 클래스가 base-list에서 지정되는 순서대로 초기화가 진행됩니다.
정리하기 위해 소멸자를 호출하는 순서입니다. 다른 부품이 소멸될 때 클래스의 특정 "부품"이 있어야 하는 경우 순서가 중요합니다. 소멸자는 base-list에서 지정한 클래스의 역순으로 호출됩니다.
참고
기본 클래스의 사양 순서는 클래스의 메모리 레이아웃에 영향을 줍니다.메모리에 있는 기본 멤버의 순서에 따라 모든 프로그래밍 의사를 결정하지 마십시오.
base-list을 지정하는 경우 동일한 클래스 이름을 두 번 이상 지정할 수 없습니다. 그러나 클래스는 간접 기본 클래스가 되거나 두 번 이상 파생된 클래스가 될 수 있습니다.