Problem D: 不同交通工具的速度

网友投稿 898 2022-11-29

Problem D: 不同交通工具的速度

Problem D: 不同交通工具的速度

Problem D: 不同交通工具的速度

Description

不同交通工具的速度是不同的。针对自行车、摩托车和汽车分别建立类,来模拟这一情况。

定义Vechicle类,是所有交通工具的父类:

1. 属性int speed表示交通工具的一般速度。

2. 静态数据成员int numOfVechicles,表示创建的交通工具的数量。这个值只增不减。

3. 静态成员函数int getNumOfVechicles(),用于获取交通工具的数量。

4. 析构函数。输出“A vechicle is deleted.”

5. 纯虚函数void show().

定义Bike、MotoBike和Car三个类,它们都是Vechicle的子类,且具有:

1. 构造函数。

2. 重写show()函数,输出“A *'s speed is ? km/h.”,其中“*”是bike、motobike或car,根据所在类不同而不同。“?”是speed属性的值。

3. 析构函数。输出“A * is deleted.”,“*”的含义同上。

定义Person类,表示司机:

1. 数据成员string name,是人的姓名。

2. void drive(Vechicle&)方法,输出“$ drives”, 并调用Vechicle类的show()方法。其中“$”是name的值。

Input

第1行N>0,表示有N个测试用例。

每个测试用例包括一个不含空白符的字符串、一个字符和一个整数。

Output

见样例及题目描述。

#include #include using namespace std;class Vechicle {protected: int speed; static int numOfVechicles;public: Vechicle(int x = 0) : speed(x) { numOfVechicles++; } virtual ~Vechicle() { cout << "A vechicle is deleted." << endl; } virtual void show() = 0; static int getNumOfVechicles() { return numOfVechicles; }};class Bike : public Vechicle {public: Bike(int s) : Vechicle(s) {} ~Bike() { cout << "A bike is deleted." << endl; } void show() { cout << "A bike's speed is "<>cases; for (int i = 0; i < cases; i++) { cin>>name>>c>>n; Person person(name); switch (c) { case 'B': vechicle = new Bike(n); break; case 'M': vechicle = new MotoBike(n); break; case 'C': vechicle = new Car(n); break; } person.drive(*vechicle); delete vechicle; } cout<<"At the end, we have "<

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:springboot控制层传递参数为非必填值的操作
下一篇:UVa 11134 Fabled Rooks ——区间选点
相关文章

 发表评论

暂时没有评论,来抢沙发吧~