SDUSTOJ2102 Problem E: 汽车、客车、货车

Description

定义Vehicle类,包括:

  1. 一个int类型属性num,表示汽车的轮子数量。
  2. 构造函数、析构函数,输出如样例所示的信息。 定义Bus类,是Vehicle类的子类,包括:
  3. 一个int类型属性guest,表示客车可乘坐的人数。
  4. 构造函数、析构函数,输出如样例所示的信息。 定义Truck类,是Vehicle类的子类,包括:
  5. 一个int类型属性weight,表示货车可载荷的货物重量。
  6. 构造函数、析构函数,输出如样例所示的信息。

Input

输入有多行,每行一个测试用例,每行包括1个正整数(车的轮子数量)、1个字符b或者t(b、t分别表示客车、货车)、1个正整数(可乘坐的人数或可承载的货物重量)。

Output

见样例。

Sample Input

4 b 40
8 t 15

Sample Output

Vehicle has 4 wheels is created.
Bus which can carry 40 persons is created.
Bus which can carry 40 persons is erased.
Vehicle has 4 wheels is erased.
Vehicle has 8 wheels is created.
Truck which can carry 15 tons goods is created.
Truck which can carry 15 tons goods is created.
Vehicle has 8 wheels is erased.

HINT

Append Code

append.cc,

这个题太能迷惑人了,弄了个假析构可还行,直接上代码

标程

#include <bits/stdc++.h>
using namespace std;
 
class Vehicle {
    protected:
        int num;
    public:
        Vehicle(int nn):num(nn) {cout << "Vehicle has " << num << " wheels is created.\n";}
        ~Vehicle() {cout << "Vehicle has " << num << " wheels is erased.\n";}
};
 
class Bus: public Vehicle {
    private:
        int guest;
    public:
        Bus(int n,int g):guest(g),Vehicle(n){
            cout<<"Bus which can carry "<<guest<<" persons is created.\n";
            cout<<"Bus which can carry "<<guest<<" persons is erased.\n";
        }
        ~Bus() {}
};
 
class Truck: public Vehicle {
    private:
        int weight;
    public:
        Truck(int n, int w):weight(w), Vehicle(n) {
            cout << "Truck which can carry " << weight << " tons goods is created.\n";
            cout << "Truck which can carry " << weight << " tons goods is created.\n";
        }
        ~Truck() {}
};
int main()
{
    int w, g;
    char t;
    Vehicle *veh;
    while (cin>>w>>t>>g)
    {
        if (t == 'b')
        {
            veh = new Bus(w, g);
        }
        else
        {
            veh = new Truck(w, g);
        }
        delete veh;
    }
    return 0;
}
 
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值