#include <iostream>
using std::cout;
using std::endl;
class Mammal {
public:
virtual ~Mammal() { }
virtual void Print() const { cout << "class Mammal" << endl; }
};
class Dog : public Mammal {
public:
void Print()const { cout << "class Dog" << endl; }
};
class Cat : public Mammal {
public:
void Print()const { cout << "class Cat" << endl; }
};
class Dolphin : public Mammal {
public:
void Print()const { cout << "class Dolphin" << endl; }
};
int main()
{
Mammal *arr[4], *p;
p = new Dog;
arr[0] = p;
p = new Cat;
arr[1] = p;
p = new Dolphin;
arr[2] = p;
p = new Mammal;
arr[3] = p;
for (int i = 0; i < 4; i++)
arr[i]->Print();
return 0;
}
/*
run:
class Dog
class Cat
class Dolphin
class Mammal
*/