#include <iostream>
//不同种类的动物,如狮子、大象、猴子等。现在,动物园里有一位讲解员,他会为每种动物表演做简单的介
//绍。定义一个基类 Animal,其中有一个虛函数perform(),用于在子类中实现不同的表演行为
using namespace std;
class Animal
{
private:string name;int weight;string color;
public:Animal(){}Animal(string name,int w,string c):name(name),weight(w),color(c){}virtual void perform(){cout << "动物讲解开始......" << endl ;}void show(){cout << name << " " << weight << " " << color << " " <<endl;}void over(){cout << "动物讲解结束......" << endl ;}
};class Lion :public Animal
{
private:string sound;int age;
public:Lion(){}Lion(string sound,int age,string name,int weight,string color):Animal(name,weight,color),sound(sound),age(age){}void perform(){cout << "狮子喷火......." << endl;}void show(){cout << sound << " " << age << " " ;}
};class Elephant :public Animal
{
private:string nose;int high;
public:Elephant(){}Elephant(string nose,int h,string name,int weight, string color):Animal(name,weight,color),nose(nose),high(h){}void perform(){cout << "大象跳圈圈......." << endl;}void show(){cout << nose << " " << high << " ";}
};class Monkey :public Animal
{
private:string breed;int birth;
public:Monkey(){}Monkey(string breed,int birth,string name,int weight, string color):Animal(name,weight,color),breed(breed),birth(birth){}void perform(){cout << "猴子蹦极......." << endl;}void show(){cout << breed << " "<< birth << " " ;}
};int main()
{ Animal f;f.perform();Animal *p;Lion A("怒吼",5,"狮子",300,"棕色");Elephant B("大长鼻子",20,"大象",500,"灰色");Monkey C("金丝猴",2023,"猴子",36,"金色");cout << "________________________" << endl;cout << endl;A.show();A.Animal::show();p=&A;p->perform();cout << endl;cout << endl;B.show();B.Animal::show();p=&B;p->perform();cout << endl;cout << endl;C.show();C.Animal::show();p=&C;p->perform();cout << endl;cout << "________________________" << endl;f.over();
}