设计一个车类vehicle,为其设计数据成员,用来代表制造厂商、型号、生产年份、价 格,再设计相应的成员西数(例如:车辆对比函数)。从vehicle类派生出Car类和Truck 类,再为其加入合适的数据成员和成员西数:从Car类派生出两个类,分别代表两种特定 的小车,从Truck类派生两个类,代表特定的两种卡车。完成类的设计后,编写测试程序
时间: 2023-06-04 14:04:58 浏览: 43
好的,我明白了。以下是对您的问题的回答:
对于问题:设计一个车类vehicle,为其设计数据成员,用来代表制造厂商、型号、生产年份、价格,再设计相应的成员函数(例如:车辆对比函数)。从vehicle类派生出Car类和Truck类,再为其加入合适的数据成员和成员函数:从Car类派生出两个类,分别代表两种特定的小车,从Truck类派生两个类,代表特定的两种卡车。完成类的设计后,编写测试程序。
以下是代码实现:
```
#include<iostream>
#include<string>
using namespace std;
class Vehicle {
private:
string maker;
string model;
int production_year;
double price;
public:
Vehicle(string mk="", string md="", int py=0, double pr=0.0) : maker(mk), model(md), production_year(py), price(pr) {}
virtual void print_vehicle() {
cout << "Maker: " << maker << endl;
cout << "Model: " << model << endl;
cout << "Production Year: " << production_year << endl;
cout << "Price: $" << price << endl;
}
bool operator<(const Vehicle &v) const {
return price < v.price;
}
};
class Car : public Vehicle {
private:
int num_doors;
public:
Car(int nd=0) : Vehicle("", "", 0, 0.0), num_doors(nd) {}
virtual void print_vehicle() {
cout << "Car - ";
Vehicle::print_vehicle();
cout << "Number of Doors: " << num_doors << endl;
}
};
class SportsCar : public Car {
public:
SportsCar() : Car(2) {}
};
class SedanCar : public Car {
public:
SedanCar() : Car(4) {}
};
class Truck : public Vehicle {
private:
int capacity;
public:
Truck(int cap=0) : Vehicle("", "", 0, 0.0), capacity(cap) {}
virtual void print_vehicle() {
cout << "Truck - ";
Vehicle::print_vehicle();
cout << "Capacity: " << capacity << " tons" << endl;
}
};
class PickupTruck : public Truck {
public:
PickupTruck() : Truck(2) {}
};
class SemiTruck : public Truck {
public:
SemiTruck() : Truck(10) {}
};
int main() {
SportsCar sc;
SedanCar sd;
PickupTruck pt;
SemiTruck st;
cout << "Vehicle Details: " << endl;
cout << "---------------------------" << endl;
sc.print_vehicle();
sd.print_vehicle();
pt.print_vehicle();
st.print_vehicle();
cout << endl;
if(sc < st) {
cout << "Sports Car is less expensive than Semi Truck." << endl;
} else {
cout << "Semi Truck is less expensive than Sports Car." << endl;
}
return 0;
}
```
希望这可以回答您的问题。如果您需要更多帮助,请随时询问!