다음을 통해 공유


다중 기본 클래스

다중 상속에서 설명된 대로 클래스는 둘 이상의 기본 클래스에서 파생될 수 있습니다. 다중 상속 모델(둘 이상의 기본 클래스에서 파생된 클래스)에서 기본 클래스는 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을 지정하는 경우 동일한 클래스 이름을 두 번 이상 지정할 수 없습니다. 그러나 클래스는 간접 기본 클래스가 되거나 두 번 이상 파생된 클래스가 될 수 있습니다.

참고 항목

참조

파생 클래스