首页 > 代码库 > 虚函数练习:动物2

虚函数练习:动物2

Problem D: 虚函数练习:动物2


Description

长期的物种进化使自然界出现了生活在陆地上的陆生动物和生活在水中的水生动物。根据已有主函数编写动物类,陆生动物类和水生动物类。

Input

动物的体长,体重,性别;

水生动物的体长,体重,性别,游泳速度;

陆生动物的体长,体重,性别,奔跑速度;

Output

动物的体长,体重,性别;

水生动物的体长,体重,性别,游泳速度;

陆生动物的体长,体重,性别,奔跑速度;

Sample Input

52 22 f
62 32 m 122
72 42 m 102

Sample Output

height:52
weight:22
sex:f
height:62
weight:32
sex:m
swimming_speed:122
height:72
weight:42
sex:m
running_speed:102

HINT




#include <iostream>  
  
using namespace std;  
  
class animal  
  
{  
      
protected:  
      
    int hight;    
      
    int weight;    
      
    char sex;     
      
public:  
    animal(int h,int w,char s):  hight(h),weight(w),sex(s){}  
    virtual void display() const
    { 
        cout<<"height:"<<hight<<endl;  
        cout<<"weight:"<<weight<<endl;  
        cout<<"sex:"<<sex<<endl;  
    }   
};  
  
class aqu_animal:virtual public animal    
  
{  
      
protected:  
      
    int swimming_speed;    
      
public:    
    aqu_animal(int h,int w,char s,int s_p): animal(h,w,s),swimming_speed(s_p){}  
    virtual void display() const
    { 
        cout<<"height:"<<hight<<endl;  
        cout<<"weight:"<<weight<<endl;  
        cout<<"sex:"<<sex<<endl;  
        cout<<"swimming_speed:"<<swimming_speed<<endl;  
          
    }; 
      
}; 
class ter_animal:virtual public animal  //lu生动物  
  
  
{  
      
      
protected:  
      
      
    int running_speed;  //速度  
      
      
public:  
    ter_animal(int h,int w,char s,int r_p):animal(h,w,s),running_speed(r_p){}  
    virtual void display() const
    {  
        cout<<"height:"<<hight<<endl;  
        cout<<"weight:"<<weight<<endl;  
        cout<<"sex:"<<sex<<endl;  
        cout<<"running_speed:"<<running_speed<<endl;  
          
    }  
      
      
      
};  
  
  
  
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; 
}