Input
动物的体长,体重,性别;
水生动物的体长,体重,性别,游泳速度;
陆生动物的体长,体重,性别,奔跑速度;
Output
动物的体长,体重,性别;
水生动物的体长,体重,性别,游泳速度;
陆生动物的体长,体重,性别,奔跑速度;
代码如下:
#include<iostream>
using namespace std;
class animal //虚基类动物
{
public:
animal(int h,int w,char s):height(h),weight(w),sex(s){}//构造函数
virtual void display()//虚函数
{
cout<<"height:"<<height<<endl;
cout<<"weight:"<<weight<<endl;
cout<<"sex:"<<sex<<endl;
}
protected://便于子类调用
int height,weight;
char sex;
};
class aqu_animal:public animal//水生动物类
{
public:
aqu_animal(int h,int w,char s,int s_s):animal(h,w,s),swimming_speed(s_s){}//构造函数
virtual void display()//子类的输出函数
{
animal::display();
cout<<"swimming_speed:"<<swimming_speed<<endl;
}
private:
int swimming_speed;
};
class ter_animal:public animal//陆生动物类
{
public:
ter_animal(int h,int w,char s,int r_s):animal(h,w,s),running_speed(r_s){}//构造函数
virtual void display()
{
animal::display ();
cout<<"running_speed:"<<running_speed<<endl;
}
private:
int running_speed;
};
int main()
{
int a,b,s,r;
char c;
animal *p;
cin>>a>>b>>c;
animal pa(a,b,c);
p=&pa;
p->display();
cin>>a>>b>>c>>s;
aqu_animal pb(a,b,c,s);
p=&pb;
p->display();
cin>>a>>b>>c>>r;
ter_animal pc(a,b,c,r);
p=&pc;
p->display();
return 0;
}