虚继承_1

描述

长期的物种进化使两栖动物既能活跃在陆地上,又能游动于水中。利用虚基类建立一个类的多重继承,包括动物(animal,属性有体长,体重和性别),陆生动物(ter_animal,属性增加了奔跑速度),水生动物(aqu_animal,属性增加了游泳速度)和两栖动物(amp_animal)。其中两栖动物保留了陆生动物和水生动物的属性。

要求: animal只有带参的构造函数。其他函数根据需要自行设置

 

输入

两栖动物的体长,体重,性别,游泳速度,奔跑速度(running_speed)

输出

初始化的两栖动物的体长,体重,性别,游泳速度,奔跑速度(running_speed)和输入的两栖动物的体长,体重,性别,游泳速度,奔跑速度(running_speed)

样例输入

52
22
f
102
122

样例输出

height:52
weight:22
sex:f
swimming_speed:102
running_speed:122
#include <iostream>
#include <cstring>
#include <string>
using namespace std;
class animal
{
    int height,weight;
    char sex[10];
public:
    animal(int a,int b,char c[10]){
        height=a;
        weight=b;
        strcpy(sex,c);
    }
    int get_height()
    {
        return height;
    }
    int get_weight()
    {
        return weight;
    }
    char* get_sex()
    {
        return sex;
    }
};
class ter_animal:virtual public animal
{
    int run_speed;
public:
    ter_animal(int a,int b,char c[10],int d):animal(a,b,c)
    {
        run_speed=d;
    }
    int get_run_speed()
    {
        return run_speed;
    }
};
class aqu_animal:virtual public animal
{
    int swim_speed;
public:
    aqu_animal(int a,int b,char c[10],int d):animal(a,b,c)
    {
        swim_speed=d;
    }
    int get_swim_speed()
    {
        return swim_speed;
    }
};
class amp_animal:public ter_animal,public aqu_animal
{
public:
    amp_animal(int a,int b,char c[10],int d,int e):animal(a,b,c),ter_animal(a,b,c,e),aqu_animal(a,b,c,d){}
    void print()
    {
        cout<<"height:"<<get_height()<<endl;
        cout<<"weight:"<<get_weight()<<endl;
        cout<<"sex:"<<get_sex()<<endl;
        cout<<"swimming_speed:"<<get_swim_speed()<<endl;
        cout<<"running_speed:"<<get_run_speed()<<endl;
    }
};
int main()
{
    int a,b,d,e;
    char c[10];
    cin>>a>>b>>c>>d>>e;
    amp_animal x(a,b,c,d,e);
    x.print();
    return 0;
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值