根据以下要求,完成编程。
1)定义一个类Animal,该类可以存放动物名字,并且有成员函数Identify()用于显示动物名字(输出: I am an animal:动物名字)
2)定义两个类Cat、Dog,都继承自Animal,并且都重载了Identify(),显示动物种类和名字(分别输出:I am a cat:动物名字; I am a dog:动物名字)
3)定义类Tiger,继承自类Cat,重载Identify(),显示输出:I am a tiger: 动物名字
4)定义一个动物园类Zoo,根据以下的提示编写动物类。注意指针指向虚函数的用法。
class Zoo
{
public:
Zoo(int max); //max为动物园最多能圈养动物数
~Zoo(){ delete residents; }
void Accept(Animal *d); //接受动物
void ListAnimal(); //显示动物园所有的动物
private:
int max_animals; //动物园能圈养的动物数
int num_animals; //动物园动物园当前圈养的动物数
Animal **residents; //指向动物园圈养的动物对象的指针数组
};
编程要求:创建三个对象Cat类对象 cat("汤姆猫")、Dog类对象dog("汪汪狗")、Tiger类对象tiger("贝乐虎"),先显示各自类的Identify()。再创建Zoo类对象shanghai, 将三只动物依次圈养到shanghai动物园,并依次输出当前圈养的动物信息。