Zoo
Do následující ukázky doplňte alespoň definice tříd Jidlo, Zvire, Antilopa a Lev tak, aby program prováděl a vypisoval výpisy, dle toho, jak je to naznačeno v komentářích. Další třídy, funkce, procedury, konstruktory, destruktory, doplňte podle toho, jaké bude váš program potřebovat. Dále program upravte tak, aby splňoval následující podmínky:
- Každé jídlo má metodu vypis.
- Každé zvíře musí umět sníst libovolné jídlo.
- Každé zvíře se umí rozmnožit a metoda RozmnozSe vrací mládě zvířete stejného typu.
- Metoda zvire.snez přepočítá hmotnost zvířete a dealokuje jídlo.
- Pokud je snězeno zvíře, tak před zkonzumováním umře.
- Výjimkou je červ. Ti se jedí zaživa.
- Abstraktní metody, které se nemají volat budou nadefinované jako RunError.
- Když umírá antilopa tak program napíše 'Antilopa {jmeno} se pokousi utect.'. To je výjimka, která se týká pouze antilop. Ostatní zvířata jen vypíší úmrtní oznámení, dle ukázky.
- Pokuste se nedefinovat proceduru vypis znovu pro každé zvíře.
- Používejte správně public, protected, private.
- Správné řešení této úlohy nikde nepoužívá podmínky a ani cykly.
- Vše musí fungovat i po doplnění tříd pro další jídla a zvířata. To by mělo jít udělat snadno bez nutnosti kopírovat kód už napsaných metod, měnit kód v jiných třídách atd.
- Všechna dynamicky alokovaná paměť musí být správně uvolněna.
Za úlohu můžete získat 25 bodů