写一个程序,定义抽象基类Vehicle,由它 派生出3个派生类: Car(汽车)、 MotorBike(摩托车)、 Truck(货车), 编写纯虚函数函数,VehicleName, NrWheel分别输出以上三者的名字和车轮数, 3种车辆的数据在定义对象时给定。
时间: 2024-01-22 21:20:01 浏览: 159
下面是一个符合题意的C++代码示例:
```cpp
#include <iostream>
#include <string>
using namespace std;
// 定义抽象基类 Vehicle
class Vehicle {
public:
// 纯虚函数,输出车辆名称
virtual void VehicleName() = 0;
// 纯虚函数,输出车轮数
virtual void NrWheel() = 0;
};
// 汽车类
class Car : public Vehicle {
private:
int wheels;
string name;
public:
// 构造函数,初始化汽车的车轮数和名称
Car(int w, string n) : wheels(w), name(n) {}
// 实现纯虚函数,输出汽车的名称
void VehicleName() {
cout << "Car name: " << name << endl;
}
// 实现纯虚函数,输出汽车的车轮数
void NrWheel() {
cout << "Car wheels: " << wheels << endl;
}
};
// 摩托车类
class MotorBike : public Vehicle {
private:
int wheels;
string name;
public:
// 构造函数,初始化摩托车的车轮数和名称
MotorBike(int w, string n) : wheels(w), name(n) {}
// 实现纯虚函数,输出摩托车的名称
void VehicleName() {
cout << "MotorBike name: " << name << endl;
}
// 实现纯虚函数,输出摩托车的车轮数
void NrWheel() {
cout << "MotorBike wheels: " << wheels << endl;
}
};
// 货车类
class Truck : public Vehicle {
private:
int wheels;
string name;
public:
// 构造函数,初始化货车的车轮数和名称
Truck(int w, string n) : wheels(w), name(n) {}
// 实现纯虚函数,输出货车的名称
void VehicleName() {
cout << "Truck name: " << name << endl;
}
// 实现纯虚函数,输出货车的车轮数
void NrWheel() {
cout << "Truck wheels: " << wheels << endl;
}
};
int main() {
// 创建3种不同的车辆对象
Car myCar(4, "BMW");
MotorBike myBike(2, "Harley Davidson");
Truck myTruck(6, "Volvo");
// 调用各自的输出函数,输出车辆名称和车轮数
myCar.VehicleName();
myCar.NrWheel();
myBike.VehicleName();
myBike.NrWheel();
myTruck.VehicleName();
myTruck.NrWheel();
return 0;
}
```
输出结果如下:
```
Car name: BMW
Car wheels: 4
MotorBike name: Harley Davidson
MotorBike wheels: 2
Truck name: Volvo
Truck wheels: 6
```
阅读全文