题目描述

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

输入

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

输出

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

样例输入

52
22
f
102
122

样例输出

height:50
weight:20
sex:m
swimming_speed:100
running_speed:120height:52
weight:22
sex:f
swimming_speed:102
running_speed:122
#include <iostream>using namespace std;class animal{protected:int height;  int weight;  char sex;   public:animal(){}animal(int h,int w,char s):height(h),weight(w),sex(s){}};class aqu_animal:virtual public animal  {protected:int swimming_speed;  public:aqu_animal(){}aqu_animal(int h,int w,char s,int s_p):animal(h,w,s),swimming_speed(s_p){}};class ter_animal:virtual public animal
{
protected:int running_speed;
public:ter_animal(){};ter_animal(int h,int w,char s,int r_s):animal(h,w,s),running_speed(r_s){}
};
class amp_animal:public aqu_animal,public ter_animal
{
public:amp_animal(){}amp_animal(int h,int w,char s,int s_p,int r_s):animal(h,w,s),aqu_animal(h,w,s,s_p), ter_animal(h,w,s,r_s){}void input(){cin>>height>>weight>>sex>>swimming_speed>>running_speed;}void show(){cout<<"height:"<<height<<endl<<"weight:"<<weight<<endl<<"sex:"<<sex<<endl<<"swimming_speed:"<<swimming_speed<<endl<<"running_speed:"<<running_speed<<endl;}
};
int main(){amp_animal a1(50,20,'m',100,120);amp_animal a2;a2.input();a1.show();cout<<endl;a2.show();return 0;

[YTU]_2566( 虚基类练习:动物)相关推荐

  1. [YTU]_2622(B 虚拟继承(虚基类)-沙发床(改错题))

    题目描述 有一种特殊的床,既能当床(Bed)用又能当沙发(Sofa)用,所以叫沙发床(SleeperSofa). 同时床和沙发又是一种特殊的家具(Furniture),具有一切家具的特性. 利用虚拟继 ...

  2. php 虚基类,1.9 多态

    1.9 多态 返回目录 1 面向对象技术 上一节 1.8 继承 多态(Polymorphism)按字面的意思就是"多种状态".在面向对象语言中,接口的多种不同的实现方式即为多态. ...

  3. 【选择恐惧症】接口?虚基类?

    [选择恐惧症]接口?虚基类? 症前兆 症分析 症解答 症总结 症前兆 记得有个朋友跟我讨论过这样的一个问题,说到他刚刚学习接口和虚基类的相关知识时觉得很迷茫,不知道什么时候该用接口,什么时候该使用虚基 ...

  4. C++中的各种“虚“-- 虚函数、纯虚函数、虚继承、虚基类、虚析构、纯虚析构、抽象类讲解

    C++中的各种"虚" 1. 菱形继承 1.1 虚继承 && 虚基类 1.2 虚基类指针(vbptr)&& 虚基类表(vbtable) 2. 多态 2 ...

  5. c++中的虚特性(虚基类、虚函数、纯虚函数)

    1. 虚基类 1.1 虚基类作用 为了解决多继承时的命名冲突和冗余数据问题,使得派生类中只保留一份间接基类的成员. 其本质是是让某个类做出声明,承诺愿意共享它的基类.其中,这个被共享的基类就称为虚基类 ...

  6. 【C++】继承和派生、虚继承和虚基类、虚基类表和虚基类指针

    继承和派生.虚继承和虚基类.虚基类表和虚基类指针 继承和派生 继承概述 继承基本概念 派生类中的成员 继承的内容 派生类定义 派生类访问控制 对象构造和析构 对象构造和析构的调用顺序 继承中的构造和析 ...

  7. 多继承中虚基类构造函数的一种调用规则

    规则:如果父类中有虚基类(A),且有一个直接基类(B)是虚基类的子类,那么子类(C或D)若不显式调用虚基类的有参数构造函数,它的直接基类(B)即使在构造列表中调用了非默认构造函数,那么也会直接调用虚基 ...

  8. C++中的虚继承与虚基类

    1.Cpp中的虚继承与虚基类 在多继承时,很容易产生命名冲突的问题,即使我们很小心地将所有类中的成员变量和成员函数都命名为不同的名字,命名冲突依然有可能发生,比如典型的是菱形继承,如下图所示: 类A派 ...

  9. 虚继承c语言例子,C/C++ 多继承{虚基类,虚继承,构造顺序,析构顺序}

    C/C++:一个基类继承和多个基类继承的区别 1.对多个基类继承会出现类之间嵌套时出现的同名问题,如果同名变量或者函数出现不在同一层次,则底层派生隐藏外层比如继承基类的同名变量和函数,不会出现二义性, ...

最新文章

  1. Android SystemProperties设置/取得系统属性的用法总结
  2. 应对5G网络需求,G.metro技术逐步走向成熟和应用
  3. opencv-python图像处理之磨皮相机
  4. MySQL如何修改密码
  5. JAVA面向对象的特征
  6. 一个jstack/jmap等不能用的case
  7. flink 复杂事件_复杂的(事件)世界
  8. dataframe修改列名_python dataframe操作大全数据预处理过程(dataframe、md5)
  9. mysql 安装telnat_yum安装telnet服务
  10. 奇店社群社区团购小程序v5.5.9
  11. failed to load kernel library!处理办法
  12. python ppt 图片_Python批量导出多个PPT\/PPTX文件中每个幻灯片为独立JPG图片
  13. idea创建Springboot项目时,出现Error:java: 读取C:\Users\HP\.m2\repository\com\vaadin\external\google\android-js
  14. SolidWorks中提高大型装配性能Part4— SolidWorks装配工具
  15. jQuery的文档处理
  16. QBXT 2018春季DP图论班 2018.5.4 --- 树形DP
  17. 一文详解目前最火的多传感器融合技术
  18. 森林防火远程监控解决方案,再隐秘的角落也难逃天眼
  19. 简进祥==iOS 3DES加密解密
  20. OneNav一为主题魔改教程(七):继续完善本地网址功能,重复的网址不让保存--洞五洞洞幺

热门文章

  1. phpstrtotime()对于31日求上个月有问题
  2. WPF/E 2007年2月CTP发布了
  3. PowerEdge R730安装Windows server2008 R2操作系统
  4. Linux下触摸屏驱动程序分析
  5. matlab-高数 polar 极坐标系 绘制阿基米德线,心形线
  6. CMD(SA400 Command)
  7. vscode使用-添加格式化插件
  8. WEBPACK 入门
  9. 由于使用zen coding导致myeclipse6.5中使用Alt+/不自动提示的解决办法
  10. 分布式大数据sql查询引擎Presto初识