重庆大学2022级-第8次作业-继承与多态
创始人
2024-01-25 17:00:01

6-1 水上飞机*

请设计以下航行器、飞机、船、水上飞机等 4 个类。

  • CRAFT 为航行器类,是公共基类,提供航行器的基本特性。包括:

    一个保护数据成员:speed(速度)。

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

  • PLANE 为飞机类,以公有方式继承 CRAFT 类,在航行器类的基础上增加飞机的特性。包括:

    一个保护数据成员:width(翼展)。

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

  • SHIP 为船类,以公有方式继承 CRAFT 类,在航行器类的基础上增加船的特性。包括:

    一个保护数据成员:depth(吃水深度)。

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

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

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

测试用例

  • 样例一
CRAFT *p; p = new CRAFT(87.2); p->Show(); delete p;
创建航行器(速度: 87.2)
航行(速度: 87.2)
销毁航行器(速度: 87.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)
  • 样例三
 
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)
  • 样例四
 
CRAFT *p; p = new SEAPLANE(415.2, 36.5, 2.1); p->Show(); delete p;
创建航行器(速度: 415.2)
创建飞机(翼展: 36.5)
创建船(吃水: 2.1)
创建水上飞机
航行(速度: 415.2, 翼展: 36.5, 吃水: 2.1)
销毁水上飞机
销毁船(吃水: 2.1)
销毁飞机(翼展: 36.5)
销毁航行器(速度: 415.2)

裁判程序

 
#include  using namespace std; /* 你提交的代码将被嵌在这里 */ int main() { double s, w, d; CRAFT *p; cin >> s >> w >> d; p = new SEAPLANE(s, w, d); p->Show(); delete p; return 0; }

输入样例

583.6 48.2 3.8

输出样例

创建航行器(速度: 583.6)
创建飞机(翼展: 48.2)
创建船(吃水: 3.8)
创建水上飞机
航行(速度: 583.6, 翼展: 48.2, 吃水: 3.8)
销毁水上飞机
销毁船(吃水: 3.8)
销毁飞机(翼展: 48.2)
销毁航行器(速度: 583.6)
class CRAFT
{
protected:double m_speed;
public:CRAFT(double a) :m_speed(a){cout << "创建航行器(速度: " << m_speed << ")" << endl;}virtual  ~CRAFT()//一定要是virtual,不然后面的析构都没办法进行{cout << "销毁航行器(速度: " << m_speed << ")";}virtual void Show(){cout << "航行(速度: " << m_speed << ")" << endl;}
};class PLANE :virtual public CRAFT {//关键字 virtualprotected:double m_width;
public:PLANE(double a, double b) :CRAFT(a), m_width(b){cout << "创建飞机(翼展: " << m_width << ")" << endl;}~PLANE(){cout << "销毁飞机(翼展: " << m_width << ")" << endl;}void Show(){cout << "航行(速度: " << m_speed << ", 翼展: " << m_width << ")" << endl;}};class SHIP :virtual public CRAFT {//关键字 virtualprotected:double m_depth;
public:SHIP(double a, double b) :CRAFT(a), m_depth(b){cout << "创建船(吃水: " << m_depth << ")" << endl;}~SHIP(){cout << "销毁船(吃水: " << m_depth << ")" << endl;}void Show() {cout << "航行(速度: " << m_speed << ", 吃水: " << m_depth << ")" << endl;}
};class SEAPLANE :public PLANE, public SHIP {public:SEAPLANE(double a, double b, double c) :PLANE(a, b), SHIP(a, c), CRAFT(a){cout << "创建水上飞机" << endl;}~SEAPLANE(){cout << "销毁水上飞机" << endl;}void Show() {cout << "航行(速度: " << PLANE::m_speed << ", 翼展: " << m_width << ", 吃水: " << m_depth << ")" << endl;}
};

 6-3 猪上树

已知Pig类是MagicPig类的父类,根据以下主函数完成上述两个类的定义,以实现规定的输出。不允许改变主函数的内容。

裁判测试程序样例:

#include
using namespace std;
/* 请在这里填写答案 */int main()
{Pig *p1 = new Pig; Pig *p2 = new MagicPig; cout << endl; p1->climb(); p2->climb(); cout << endl; delete p1; delete p2;  return 0;
}

输入样例:

无输入

输出样例:

Pig 申请了空间...
Pig 申请了空间...
MagicPig 申请了空间...我只是个平凡的猪猪。
我能上树了耶!Pig 释放了空间...
MagicPig 释放了空间...
Pig 释放了空间...

class Pig 
{
public:Pig() {cout << "Pig 申请了空间..." << endl;}virtual ~Pig(){cout << "Pig 释放了空间..." << endl;}virtual void climb(){cout << "我只是个平凡的猪猪。" << endl;}
};
class MagicPig :public Pig 
{
public:MagicPig() { cout << "MagicPig 申请了空间..." << endl;}~MagicPig() { cout << "MagicPig 释放了空间..." << endl;}void climb() { cout << "我能上树了耶!"<

 鸽子起飞

相关内容

热门资讯

埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
超纤皮是什么皮 超纤皮好不好 相信大家买车的时候,很多人都会选择皮座椅,因为不但有档次,而且手感也会比织物的好。但是大家想过没有,...
应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...
脚上的穴位图 脚面经络图对应的... 人体穴位作用图解大全更清晰直观的标注了各个人体穴位的作用,包括头部穴位图、胸部穴位图、背部穴位图、胳...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...
猫咪吃了塑料袋怎么办 猫咪误食... 你知道吗?塑料袋放久了会长猫哦!要说猫咪对塑料袋的喜爱程度完完全全可以媲美纸箱家里只要一有塑料袋的响...
世界上最漂亮的人 世界上最漂亮... 此前在某网上,选出了全球265万颜值姣好的女性。从这些数量庞大的女性群体中,人们投票选出了心目中最美...
埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
超纤皮是什么皮 超纤皮好不好 相信大家买车的时候,很多人都会选择皮座椅,因为不但有档次,而且手感也会比织物的好。但是大家想过没有,...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...