|
Existují dva způsoby, jak mohou odvozené třídy zdědit více než jednu základní třídu.
- Odvozená třídy může být použita jako základní třída pro další odvozenou třídu, vytvořením víceúrovňové hierarchie třídy.
- Odvozená třída může zdědit více než jednu základní třídu.
Ad 1) Původní základní třída je označena za nepřímou (indirect) základní třídu druhé odvozené třídy. V tomto případě platí, že jakákoliv třída, bez ohledu na to, jak byla vytvořena může být základní třídou. Dále platí, že v tomto
případě, jsou konstruktory funkcí všech tříd nazývány podle pořadí odvozování. Také destruktory jsou volány v opačném pořadí.
Ad 2) Dvě nebo více základních tříd je zkombinováno tak, aby pomohly vytvořit odvozenou třídu. V tomto případě používáme následující syntaxi:
class jméno-odvozené třídy:access base1, access base2, ..., access baseN
{
// tělo-třídy
}
base1, ..., baseN jsou jména základních tříd. Access je přístupový specifikátor, který může být jiný pro každou třídu. Konstruktory jsou v tomto případě spouštěny zleva doprava, neboli v tom pořadí v jakém jsou zapsány. Destruktory jsou spouštěny v opačném pořadí.
Následující program ukazuje odvozenou třídu, která dědí od jiné odvozené třídy.
|