...
Tyypillisesti luokka periytyy suoraan ainoastaan yhdestä luokasta, mutta joskus luokka kannattaa periyttää useista luokista. Kyseessä on silloin moniperiytyminen.
Esimerkki 1. Moniperiytyminen.
Esimerkiksi, jos ajattelemme pegasusta, lentävää hevosta, joka omaa ominaisuuksia hevosesta ja linnusta. Helpoin Yksi tapa toteuttaa edellä kuvattu luokka on periyttää sen ominaisuudet kahdesta luokasta: hevonen ja lintu.
...
CHevonen ja CLintu.
CHevonen:
Code Block |
---|
class CHevonen { public: void Aantele() { printf("Iii-haa-haa!\n"); } }; |
...
Esimerkki 2. Moniperiytymisen ongelma.
CHevonen:
Code Block |
---|
class CHevonen { public: void Syo() { } }; |
CLintu:
Code Block |
---|
class CLintu { public: void Syo() { } }; |
CPegasus:
Code Block |
---|
class CPegasus : public CHevonen, public CLintu { }; |
main:
Code Block |
---|
int main() { CPegasus pegasus; pegasus.Syo(); } |
...