< previous page page_296 next page >

Page 296
LISTING 18.6 continued
d5ef64f4d3250b96ba5c07ca5bbc2f56.gif
46:       virtual void Move() const { cout << fish swimming\n;  }
47:       virtual void Speak() const { }
48:    };
49:
50:    class Horse : public Mammal
51:    {
52:    public:
53:       Horse(int age, COLOR color ):
54:          Mammal(age), itsColor(color) { cout << Horse constructor\n; }
55:       virtual ~Horse() { cout << Horse destructor\n; }
56:       virtual void Speak() const { cout << Whinny! \n; }
57:       virtual COLOR GetItsColor() const { return itsColor; }
58:       virtual void Sleep() const { cout << Horse snoring\n; }
59:       virtual void Eat() const { cout << Horse feeding\n; }
60:       virtual void Move() const { cout << Horse running\n;}
61:
62:    protected:
63:       COLOR itsColor;
64:    };
65:
66:    class Dog : public Mammal
67:    {
68:    public:
69:       Dog(int age, COLOR color ):
70:          Mammal(age), itsColor(color) { cout << Dog constructor\n; }
71:       virtual ~Dog() { cout << Dog destructor\n; }
72:       virtual void Speak()const { cout << Whoof! \n; }
73:       virtual void Sleep() const { cout << Dog snoring\n; }
74:       virtual void Eat() const { cout << Dog eating\n; }
75:       virtual void Move() const { cout << Dog running\n; }
76:       virtual void Reproduce() const { cout << Dogs reproducing\n; }
77:
78:    protected:
79:       COLOR itsColor;
80:    };
81:
82:    int main()
83:    {
84:       Animal *pAnimal=0;
85:       int choice;
86:       bool fQuit = false;
87:
88:       while (1)
89:       {
90:          cout << (1)Dog (2)Horse (3)Fish (0)Quit: ;
d5ef64f4d3250b96ba5c07ca5bbc2f56.gif
continues

 
< previous page page_296 next page >

If you like this book, buy it!