请问有没有人能帮我解答这个问题,实在是不会
设有一个电梯类Elevator,包括私有数据成员:型号id和售价price。客梯类pElevator除了型号和售价外,还包括新增属性:最大载客数passenger_load。货梯类cElevator除了型号和售价外,还包括新增属性:最大载货重量cargo_load。客货两用类dElevator包含上述所有属性。编写一个程序,明确上述各类之间的继承关系,并能够求取单位载客/载重价格(数据自拟)。
#include<iostream>
using namespace std;
class Elevator {
protected:
string id; // 电梯型号
double price; // 电梯售价
public:
void set_id(string str) { id = str; } // 设置电梯型号
void set_price(double num) { price = num; } // 设置电梯售价
string get_id() { return id; } // 获取电梯型号
double get_price() { return price; } // 获取电梯售价
};
class pElevator : public Elevator {
private:
int passenger_load; // 最大载客数
public:
void set_passenger_load(int num) { passenger_load = num; } // 设置最大载客数
int get_passenger_load() { return passenger_load; } // 获取最大载客数
double unit_price() { return price/passenger_load; } // 计算单位载客价格
};
class cElevator : public Elevator {
private:
double cargo_load; // 最大载货重量
public:
void set_cargo_load(double num) { cargo_load = num; } // 设置最大载货重量
double get_cargo_load() { return cargo_load; } // 获取最大载货重量
double unit_price() { return price/cargo_load; } // 计算单位载重价格
};
class dElevator : public pElevator, public cElevator {
public:
double unit_price() { return price/(passenger_load + cargo_load); } // 计算单位载客/载重价格
};
int main() {
dElevator elevator;
elevator.set_id("D1088N");
elevator.set_price(100000);
elevator.set_passenger_load(20);
elevator.set_cargo_load(2000);
cout << "dElevator的型号是:" << elevator.get_id() << endl;
cout << "dElevator的售价是:" << elevator.get_price() << endl;
cout << "dElevator的最大载客数是:" << elevator.get_passenger_load() << endl;
cout << "dElevator的最大载货重量是:" << elevator.get_cargo_load() << endl;
cout << "单位载客/载重价格为:" << elevator.unit_price() << endl;
return 0;
}
在上述代码实现中,首先定义了一个名为“Elevator”的基类,其中包含“型号”和“售价”两个私有数据成员。然后,分别编写了针对于客梯(pElevator)和货梯(cElevator)的子类,这两个类都继承自“Elevator”基类,在此基础之上新增一个属性:分别为“最大载客数”和“最大载货重量”。
接下来,又定义了一个名为“dElevator”的客货两用电梯类,该类除了继承自“pElevator”和“cElevator”两个类外,还通过override关键字定义了一个公有的成员函数“unit_price()”来计算单位载客/载重价格。
在主函数中,分别创建了一个“dElevator”的电梯对象,设置其型号、售价、最大载客数和最大载货重量,并通过调用对象的相应方法获取这些属性值,并计算出单位载客/载重价格并输出。