6-29 水上飞机(*) (20分)多重继承
飞机类,同时以公有方式继承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分)多重继承相关推荐
- 2-9 彩虹瓶 (20 分)
2-9 彩虹瓶 (20 分) rb.JPG 彩虹瓶的制作过程(并不)是这样的:先把一大批空瓶铺放在装填场地上,然后按照一定的顺序将每种颜色的小球均匀撒到这批瓶子里. 假设彩虹瓶里要按顺序装 N 种颜色 ...
- 2-9 彩虹瓶 (20 分)
2-9 彩虹瓶 (20 分) 彩虹瓶的制作过程(并不)是这样的:先把一大批空瓶铺放在装填场地上,然后按照一定的顺序将每种颜色的小球均匀撒到这批瓶子里. 假设彩虹瓶里要按顺序装 N 种颜色的小球(不妨将 ...
- PTA 2-9 彩虹瓶 (20 分)(C语言)
2-9 彩虹瓶 (20 分) 彩虹瓶的制作过程(并不)是这样的:先把一大批空瓶铺放在装填场地上,然后按照一定的顺序将每种颜色的小球均匀撒到这批瓶子里. 假设彩虹瓶里要按顺序装 N 种颜色的小球(不妨将 ...
- 百度今晨7:20分“宕机”
中国百度搜索引擎疑遭类似******,***者自称Iranian Cyber Army的组织篡改了百度主页,并留下疑似阿拉伯文字.目前百度网站尚未恢复访问,但***的具体原因尚未知晓 ...
- B1013 数素数(20分)
B1013 数素数(20分) 令 \(P_i\)表示第 i 个素数.现任给两个正整数 \(M≤N≤10^4\),请输出 \(P_M\)到 \(P_N\)的所有素数. 输入格式: 输入在一行中给出 M ...
- C++学习之路 | PTA乙级—— 1037 在霍格沃茨找零钱 (20 分)(精简)
1037 在霍格沃茨找零钱 (20 分) 如果你是哈利·波特迷,你会知道魔法世界有它自己的货币系统 -- 就如海格告诉哈利的:"十七个银西可(Sickle)兑一个加隆(Galleon),二十 ...
- C++学习之路 | PTA乙级—— 1013 数素数 (20分)(精简)
1013 数素数 (20分) 令 P i 表示第 i 个素数.现任给两个正整数 M≤N≤10 4 ,请输出 P M 到 P N 的所有素数. 输入格式: 输入在一行中给 ...
- 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+ ...
- 【PAT乙】1044 火星数字 (20分)
1044 火星数字 (20分) 火星人是以 13 进制计数的: 地球人的 0 被火星人称为 tret. 地球人数字 1 到 12 的火星文分别为:jan, feb, mar, apr, may, ju ...
最新文章
- MSTP技术支撑大客户专线——Vecloud
- Makefile:自动化变量 $@,$^,$<,$?
- 9、Power Map—应用拾取坐标系统确定经纬度
- sqlyog表添加列_如何用数据透视表求差,而不是求和?
- Java中使用JNI调用本地动态库的方法
- c语言的四个函数,C语言学习之动态内存分配的四个函数
- .NET的委托和匿名函数应用一例
- 句句真研—每日长难句打卡Day17
- USB抓包工具Bus Hound
- 通用功能模块------滑动图片验证
- c#程序设计语言杜松江版_C#程序设计语言复习题(试题及答案版)
- UTF-8转换为GBK编码
- java汉字拼音简码_java生成首字母拼音简码的总结
- 运用HTML5进行文字排版详解
- 对深度学习程序进行性能优化之前该理解的几个知识点(一)
- Google Play开发者账号注册教程(new)
- windows方法和属性
- 2005年上半年软件评测师试题和答案
- 数理统计(数值修约、0.5修约、0.2修约、有效数字运算、平均值、中位数、极差、标准差、变异系数)
- mongodb数据库自动备份
热门文章
- Hangfire Pro 2022-08-31 update
- mac关闭渐隐和弹出动画效果
- 数据结构与算法【Java】05---排序算法总结
- 什么是RAID?RAID有什么用?RAID原理
- BugkuCTF-WEB-flag在index里
- DOS操作系统的一些常用命令
- 我们来统计一个各大学中国学生会CSSA的list吧
- 孟岩:我反对将Token翻译成“代币”
- zabbix_agentd.exe [13816]: ERROR: cannot connect to Service Manager: [0x00000005]
- tkinter将图标写入py文件