• 飞机类,同时以公有方式继承PLANE类和SHIP类,兼具飞机和船的特性。包括:

    三个公有成员函数:构造函数(初始化速度、翼展、吃水深度)、析构函数和Show函数(显示速度、翼展和吃水深度)。

测试用例

1) 样例一

CRAFT *p;
p = new CRAFT(87.2);
p->Show();
delete p;
创建航行器(速度: 87.2)
航行(速度: 87.2)
销毁航行器(速度: 87.2)

2) 样例二

CRAFT *p;
p = new PLANE(613.5, 45.3);
p->Show();
delete p;
创建航行器(速度: 613.5)
创建飞机(翼展: 45.3)
航行(速度: 613.5, 翼展: 45.3)
销毁飞机(翼展: 45.3)
销毁航行器(速度: 613.5)

3) 样例三

CRAFT *p;
p = new SHIP(45.8, 8.3);
p->Show();
delete p;
创建航行器(速度: 45.8)
创建船(吃水: 8.3)
航行(速度: 45.8, 吃水: 8.3)
销毁船(吃水: 8.3)
销毁航行器(速度: 45.8)

4) 样例四

CRAFT *p;
p = new SEAPLANE(415.2, 36.5, 2.1);
p->Show();
delete p;
创建航行器(速度: 415.2)
创建飞机(翼展: 36)
创建船(吃水: 2.1)
创建水上飞机
航行(速度: 415.2, 翼展: 36, 吃水: 2.1)
销毁水上飞机
销毁船(吃水: 2.1)
销毁飞机(翼展: 36)
销毁航行器(速度: 415.2)

测试程序

#include <iostream>
using namespace std;/* 你提交的代码将被嵌在这里 */int main()
{CRAFT *p;p = new SEAPLANE(415.2, 36.5, 2.1);p->Show();delete p;return 0;
}#### 输出样例```out
创建航行器(速度: 415.2)
创建飞机(翼展: 36.5)
创建船(吃水: 2.1)
创建水上飞机
航行(速度: 415.2, 翼展: 36.5, 吃水: 2.1)
销毁水上飞机
销毁船(吃水: 2.1)
销毁飞机(翼展: 36.5)
销毁航行器(速度: 415.2)

答案:

class CRAFT{
    protected:
        double speed;
    public:
        CRAFT(double a):speed(a)
        {cout<<"创建航行器(速度: "<<speed<<")"<<endl;}

virtual  ~CRAFT()//一定要是virtual,不然后面的析构都没办法进行

{cout<<"销毁航行器(速度: "<<speed<<")"<<endl;}
        virtual void Show()
        {cout<<"航行(速度: "<<speed<<")"<<endl;}
};

class PLANE:virtual public CRAFT{//关键字 virtual

protected:
        double wi;
    public:
        PLANE(double a,double b):CRAFT(a),wi(b)
        {cout<<"创建飞机(翼展: "<<wi<<")"<<endl;}
        ~PLANE()
        {cout<<"销毁飞机(翼展: "<<wi<<")"<<endl;}
        void Show()
        {cout<<"航行(速度: "<<speed<<", 翼展: "<<wi<<")"<<endl;     }
    
};

class SHIP:virtual public CRAFT{//关键字 virtual

protected:
        double de;
    public:
        SHIP(double a,double b):CRAFT(a),de(b)
        {cout<<"创建船(吃水: "<<de<<")"<<endl;}
         ~SHIP()
        {cout<<"销毁船(吃水: "<<de<<")"<<endl;}
        void Show(){
            cout<<"航行(速度: "<<speed<<", 吃水: "<<de<<")"<<endl;
        }
};

class SEAPLANE:public PLANE,public SHIP{//这里的是 public

public:

SEAPLANE(double a,double b,double c):PLANE(a,b),SHIP(a,c),CRAFT(a)

//这里有CRAFT 的初始化

{
            cout<<"创建水上飞机"<<endl;
        }
        ~SEAPLANE()
        {cout<<"销毁水上飞机"<<endl;}
        void Show(){
            cout<<"航行(速度: "<<PLANE::speed <<", 翼展: "<<wi<<", 吃水: "<<de<<")"<<endl;
        }
};

相似的例子在2020下 cpp课件Part_three One 部分

6-29 水上飞机(*) (20分)多重继承相关推荐

  1. 2-9 彩虹瓶 (20 分)

    2-9 彩虹瓶 (20 分) rb.JPG 彩虹瓶的制作过程(并不)是这样的:先把一大批空瓶铺放在装填场地上,然后按照一定的顺序将每种颜色的小球均匀撒到这批瓶子里. 假设彩虹瓶里要按顺序装 N 种颜色 ...

  2. 2-9 彩虹瓶 (20 分)

    2-9 彩虹瓶 (20 分) 彩虹瓶的制作过程(并不)是这样的:先把一大批空瓶铺放在装填场地上,然后按照一定的顺序将每种颜色的小球均匀撒到这批瓶子里. 假设彩虹瓶里要按顺序装 N 种颜色的小球(不妨将 ...

  3. PTA 2-9 彩虹瓶 (20 分)(C语言)

    2-9 彩虹瓶 (20 分) 彩虹瓶的制作过程(并不)是这样的:先把一大批空瓶铺放在装填场地上,然后按照一定的顺序将每种颜色的小球均匀撒到这批瓶子里. 假设彩虹瓶里要按顺序装 N 种颜色的小球(不妨将 ...

  4. 百度今晨7:20分“宕机”

             中国百度搜索引擎疑遭类似******,***者自称Iranian Cyber Army的组织篡改了百度主页,并留下疑似阿拉伯文字.目前百度网站尚未恢复访问,但***的具体原因尚未知晓 ...

  5. B1013 数素数(20分)

    B1013 数素数(20分) 令 \(P​_i\)表示第 i 个素数.现任给两个正整数 \(M≤N≤10^4\),请输出 \(P_M\)到 \(P_N\)的所有素数. 输入格式: 输入在一行中给出 M ...

  6. C++学习之路 | PTA乙级—— 1037 在霍格沃茨找零钱 (20 分)(精简)

    1037 在霍格沃茨找零钱 (20 分) 如果你是哈利·波特迷,你会知道魔法世界有它自己的货币系统 -- 就如海格告诉哈利的:"十七个银西可(Sickle)兑一个加隆(Galleon),二十 ...

  7. C++学习之路 | PTA乙级—— 1013 数素数 (20分)(精简)

    1013 数素数 (20分) 令 P ​i ​​ 表示第 i 个素数.现任给两个正整数 M≤N≤10 ​4 ​​ ,请输出 P ​M ​​ 到 P ​N ​​ 的所有素数. 输入格式: 输入在一行中给 ...

  8. 7-38 数列求和-加强版(20 分)

    7-38 数列求和-加强版(20 分) 给定某数字A(1≤A≤9)以及非负整数N(0≤N≤100000),求数列之和S=A+AA+AAA+⋯+AA⋯A(N个A).例如A=1, N=3时,S=1+11+ ...

  9. 【PAT乙】1044 火星数字 (20分)

    1044 火星数字 (20分) 火星人是以 13 进制计数的: 地球人的 0 被火星人称为 tret. 地球人数字 1 到 12 的火星文分别为:jan, feb, mar, apr, may, ju ...

最新文章

  1. MSTP技术支撑大客户专线——Vecloud
  2. Makefile:自动化变量 $@,$^,$<,$?
  3. 9、Power Map—应用拾取坐标系统确定经纬度
  4. sqlyog表添加列_如何用数据透视表求差,而不是求和?
  5. Java中使用JNI调用本地动态库的方法
  6. c语言的四个函数,C语言学习之动态内存分配的四个函数
  7. .NET的委托和匿名函数应用一例
  8. 句句真研—每日长难句打卡Day17
  9. USB抓包工具Bus Hound
  10. 通用功能模块------滑动图片验证
  11. c#程序设计语言杜松江版_C#程序设计语言复习题(试题及答案版)
  12. UTF-8转换为GBK编码
  13. java汉字拼音简码_java生成首字母拼音简码的总结
  14. 运用HTML5进行文字排版详解
  15. 对深度学习程序进行性能优化之前该理解的几个知识点(一)
  16. Google Play开发者账号注册教程(new)
  17. windows方法和属性
  18. 2005年上半年软件评测师试题和答案
  19. 数理统计(数值修约、0.5修约、0.2修约、有效数字运算、平均值、中位数、极差、标准差、变异系数)
  20. mongodb数据库自动备份

热门文章

  1. Hangfire Pro 2022-08-31 update
  2. mac关闭渐隐和弹出动画效果
  3. 数据结构与算法【Java】05---排序算法总结
  4. 什么是RAID?RAID有什么用?RAID原理
  5. BugkuCTF-WEB-flag在index里
  6. DOS操作系统的一些常用命令
  7. 我们来统计一个各大学中国学生会CSSA的list吧
  8. 孟岩:我反对将Token翻译成“代币”
  9. zabbix_agentd.exe [13816]: ERROR: cannot connect to Service Manager: [0x00000005]
  10. tkinter将图标写入py文件