设有一个电梯类Elevator,包括私有数据成员:型号id和售价price。客梯类pElevator除了型号和售价外,还包括

请问有没有人能帮我解答这个问题,实在是不会
设有一个电梯类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”的电梯对象,设置其型号、售价、最大载客数和最大载货重量,并通过调用对象的相应方法获取这些属性值,并计算出单位载客/载重价格并输出。