有一个交通工具类 vehicle
,将它为 基类派生的有派生小车类 car
,卡车类 truck
和轮船类 boat
,定义这些类,并使其能够显示其各类交通工具的详细信息。包含的信息有如下几种:
1.名字 -----与输入的名字相符合
2.时速(km/h
) -----最高时速
3.耗油量(L/100km
) -----在经济时速下测得耗油量
测试说明
输入描述: 输入三个派生类对应名字。
输出描述: 输出对应类型的信息。
测试输入: Car
truck
Boat
输出样例: Car
250km/h
14.8L/100km
truck
140km/h
18L/100km
Boat
50km/h
8.33L/100km
#include <iostream>
#include <string>
using namespace std;
class Vehicle {
public:
Vehicle(string name, int maxSpeed, double fuelConsumption) {
this->name = name;
this->maxSpeed = maxSpeed;
this->fuelConsumption = fuelConsumption;
}
virtual void display() {
cout << "This is a " << name << "!" << endl;
}
protected:
string name;
int maxSpeed;
double fuelConsumption;
};
class Car : public Vehicle {
public:
Car(string name, int maxSpeed, double fuelConsumption) : Vehicle(name, maxSpeed, fuelConsumption) {}
void display() {
cout << name << " " << maxSpeed << "km/h " << fuelConsumption << "L/100km"<<' ';
}
};
class Truck : public Vehicle {
public:
Truck(string name, int maxSpeed, double fuelConsumption) : Vehicle(name, maxSpeed, fuelConsumption) {}
void display() {
cout << name << " " << maxSpeed << "km/h " << fuelConsumption << "L/100km"<<' ';
}
};
class Boat : public Vehicle {
public:
Boat(string name, int maxSpeed, double fuelConsumption) : Vehicle(name, maxSpeed, fuelConsumption) {}
void display() {
cout << name << " " << maxSpeed << "km/h " << fuelConsumption << "L/100km" <<' ';
}
};
int main() {
Car car("Car", 250, 14.8);
Truck truck("truck", 140, 18);
Boat boat("Boat", 50, 8.33);
car.display();
truck.display();
boat.display();
return 0;
}