Udostępnij za pośrednictwem


Wiele klas podstawowych

Jak opisano w Wielokrotne dziedziczenie, klasa może być wyprowadzona z więcej niż jednej klasy podstawowej.W modelu dziedziczenia wielu (gdzie klasy pochodzą z więcej niż jednej klasy bazowej) klasy podstawowej są określane przy użyciu Lista podstawowego element gramatyki (sekcja gramatyki w Omówienie).Na przykład deklaracja klasy dla CollectionOfBook, pochodzący z Collection i Book, można określić:

// deriv_MultipleBaseClasses.cpp
// compile with: /LD
class Collection {
};
class Book {};
class CollectionOfBook : public Book, public Collection {
    // New members
};

Kolejność, w jakiej są określane klas podstawowych nie jest znaczący, z wyjątkiem w niektórych przypadkach, gdy wywoływany konstruktory i destruktory.W tych przypadkach kolejność, w jakiej są określane klas podstawowych wpływa na następujące:

  • Kolejność, w którego zainicjowanie przez konstruktora ma miejsce.Jeśli kod opiera się na Book część CollectionOfBook zostać zainicjowany przed Collection część, kolejność specyfikacja jest znaczny.Inicjowanie odbywa się w kolejności klas są określone w Lista podstawowego.

  • Kolejność, w jakiej są wywoływane destruktory oczyszczania.Ponownie Jeśli w szczególności "część" klasy musi być obecny, kiedy niszczony jest drugiej strony, kolejność jest znaczny.Destruktory są nazywane w odwrotnej kolejności klas, określonych w Lista podstawowego.

    [!UWAGA]

    Kolejność Specyfikacja klas podstawowych może wpłynąć na układ pamięci klasy.Nie należy wprowadzać jakichkolwiek decyzji programowania, na podstawie kolejności członków podstawowej w pamięci.

Podczas określania Lista podstawowego, taką samą nazwę klasy nie można określić więcej niż jeden raz.Jednak jest możliwe dla klasy być pośrednich base w klasie pochodnej więcej niż jeden raz.

Zobacz też

Informacje

Klasy pochodne