#include #include using namespace std; class Animal { public: Animal() : m_isAlive(true) {}; Animal(bool isAlive) : m_isAlive(isAlive) {}; bool IsAlive() const { return m_isAlive; }; void Died() { m_isAlive = false; } virtual string Eats() = 0; private: bool m_isAlive; }; class Lion : public Animal { public: Lion() : Animal() {}; Lion(bool isAlive) : Animal(isAlive) {}; virtual string Eats() { return "meat"; } }; class Lamb : public Animal { public: Lamb() : Animal() {}; Lamb(bool isAlive) : Animal(isAlive) {}; virtual string Eats() { return "grass"; } }; class Shark : public Animal { public: Shark() : Animal() {}; Shark(bool isAlive) : Animal(isAlive) {}; virtual string Eats() { return "people"; } }; int main() { Animal *leo = new Lion; Animal *lambert = new Lamb; Animal *leon = new Shark; cout << "The lion eats " << leo->Eats() << endl; cout << "The lamb eats " << lambert->Eats() << endl; cout << "The shark eats " << leon->Eats() << endl; return 0; }