// esim2.cpp
#include <iostream>
#include <string>

using namespace std;

class Animal {

protected: // aliluokka saa kytt jsenmuuttujia suoraan, mutta ulkopuoliset luokat eivt

    string m_race;
    string m_name;
    
public:

    Animal( string race, string name ) {
        cout << "Animal-muodostin..." << endl;
        m_race = race;
        m_name = name;
    }

    ~Animal() {
        cout << "Animal-hajotin..." << endl;
    }

    void eat() {
        cout << m_race << "elin " << m_name << " sy..." << endl;
    }
};

class Lion : public Animal {

public:

    Lion( string name ) : Animal( "Leijona", name ) {
        cout << "Lion-muodostin..." << endl;
    }

    ~Lion() {
        cout << "Lion-hajotin..." << endl;
    }

    void eat() {
        cout << m_race << "elin " << m_name << " sy lihaa..." << endl;
    }

};

int main(void) {

    Animal elukka( "Elefantti", "Tantor" );
    elukka.eat();

    Lion jellona( "Numa" );
    jellona.eat();

    return (0);
}