Více základní třídy
Jak je popsáno v Vícenásobné dědění, třídy mohou být odvozeny z více než jeden základní třídy.V modelu dědičnosti více (kde jsou třídy odvozené od více než jeden základní třída) základní třídy, které jsou určeny pomocí Přehled základních prvek gramatiky (naleznete v části gramatiky Přehled).Například třída prohlášení pro CollectionOfBook, odvozené z Collection a Book, lze určit:
// deriv_MultipleBaseClasses.cpp
// compile with: /LD
class Collection {
};
class Book {};
class CollectionOfBook : public Book, public Collection {
// New members
};
Pořadí, ve kterém jsou uvedeny základní třídy není významné, s výjimkou v určitých případech, kdy vyvolat konstruktory a destruktory.V těchto případech ovlivňuje pořadí, ve kterém jsou uvedeny základní třídy následující:
Pořadí, v jehož inicializace pomocí konstruktoru uskuteční.Pokud váš kód využívá Book část CollectionOfBook být inicializována před Collection část, pořadí specifikace je významné.Inicializace probíhá v pořadí tříd, které jsou specifikovány v Přehled základních.
Pořadí, ve kterém jsou uplatňovány destruktory vyčistit.Znovu Pokud určité třídy "části" musí být k dispozici při druhé je zničen, pořadí je významné.Destruktory nazývají v obráceném pořadí tříd uvedených v Přehled základních.
[!POZNÁMKA]
Pořadí specifikace základní třídy, které mohou ovlivnit rozvržení paměti třídy.Provést rozhodnutí programování založené ze základní členy v paměti.
Při zadávání Přehled základních, stejný název třídy nelze zadat více než jednou.Je možné pro třídu více než jednou za nepřímé base odvozené třídy.