//////////////////////////////////////////////////
// Inherit.cpp : Demonstrate simple inheritance //
//////////////////////////////////////////////////

#include <iostream>
#include <string>

using namespace std;

class Primate
{
public:
    Primate() : hair("black") { }
    Primate(string hair) { this->hair = hair; }
    string ToString() { return "Primate: hair=" + hair; }
    string GetHair() { return hair; }
private:
    string hair;
};

class Human : public Primate
{
public:
    Human() : name("unknown") { }
    Human(string name) : name(name) { }
    Human(string name, string hair) : name(name), Primate(hair) { }
    string ToString() { return "Human:   name=" + name + "  hair=" + GetHair(); }
private:
    string name;
};


int main()
{
    cout << endl << "Simple inheritance" << endl << endl;

    Primate p1("blue");
    cout << p1.ToString() << endl;

    Human h1("george");
    cout << h1.ToString() << endl;

    Human h2("mary", "green");
    cout << h2.ToString() << endl;

    cout << endl;
    return 0;
}

