C++派生

编程实现:有一个汽车类Vehicle,它具有一个需传递参数的构造函数,还拥有保护数据成员车轮个数wheels和车重weight。小汽车类Car是Vehicle的私有派生类,其中包含载)

#include<iostream>
#include<string>
using namespace std;

class Vehicle{
private:
    // 私有成员变量,表示车辆名称、车轮个数和重量
    string name;
    int wheels;
    int weight;
public:
    // 构造函数,初始化车轮个数、重量和名称
    Vehicle(int wh, int we, string nm) :wheels(wh), weight(we) {
        name = nm;
    }
    // 设置车轮个数、重量和名称的函数
    void SetWheels(int wh) {
        wheels = wh;
    }
    void SetWeight(int we) {
        weight = we;
    }
    void SetName(char nm[]) {
        name = nm;
    }
    // 获取车轮个数、重量和名称的函数
    int GetWheels() const {
        return wheels;
    }
    int GetWeight() const {
        return weight;
    }
    string GetName() const {
        return name;
    }
    // 显示车辆信息的函数
    void show() const;
};

// 显示车辆信息的函数的定义
void Vehicle::show() const{
    cout << "汽车类别:" << name << endl;
    cout << "汽车车轮个数:" << wheels << endl;
    cout << "汽车重量:" << weight << endl;
}

// Car类继承自Vehicle类,私有继承
class Car :private Vehicle{
protected:
    // 受保护的成员变量,表示载人数
    int passengerLoad;
public:
    // 构造函数,初始化载人数、车轮个数、重量和名称,调用基类构造函数
    Car(int pl, int wh, int we, string nm) :Vehicle(wh, we, nm), passengerLoad(pl) {}
    // 设置载人数的函数
    void SetPassengerLoad(int pl) {
        passengerLoad = pl;
    }
    // 获取载人数的函数
    int GetPassengerLoad() const {
        return passengerLoad;
    }
    // 显示车辆信息的函数,重写基类的show函数
    void show() const;
};

// 显示车辆信息的函数的定义,重写基类的show函数
void Car::show() const{
    cout << "汽车类别:" << name << endl;
    cout << "汽车车轮个数:" << wheels << endl;
    cout << "载人数:" << passengerLoad << endl;
    cout << "汽车重量:" << weight << "kg" << endl;
}

// Truck类继承自Vehicle类,私有继承
class Truck :private Vehicle{
protected:
    // 受保护的成员变量,表示载人数和载重量
    int passengerLoad;
    int payload;
public:
    // 构造函数,初始化载人数、载重量、车轮个数、重量和名称,调用基类构造函数
    Truck(int p, int pd, int wh, int we, string nm) :Vehicle(wh, we, nm), passengerLoad(p), payload(pd) {}
    // 设置载人数和载重量的函数
    void SetPassenger(int p) {
        passengerLoad = p;
    }
    void SetPayLoad(int pd) {
        payload = pd;
    }
    // 获取载人数和载重量的函数
    int GetPassenger() const {
        return passengerLoad;
    }
    int GetPayLoad() const {
        return payload;
    }
    // 显示车辆信息的函数,重写基类的show函数
    void show() const;
};

// 显示车辆信息的函数的定义,重写基类的show函数
void Truck::show()const{
    cout << "汽车类别:" << name << endl;
    cout << "汽车车轮个数:" << wheels << endl;
    cout << "载人数:" << passengerLoad << endl;
    cout << "载重量:" << payload << "吨" << endl;
    cout << "汽车重量:" << weight << "吨" << endl;
}

int main(){
    // 创建Car对象car1,初始化载人数、车轮个数、重量和名称
    Car car1(4, 4, 1400, "小汽车");
    // 调用Car对象的show函数,显示车辆信息
    car1.show();

    // 创建Truck对象truck1,初始化载人数、载重量、车轮个数、重量和名称
    Truck truck1(4, 2, 8, 3, "卡车");
    // 调用Truck对象的show函数,显示车辆信息
    truck1.show();

    system("PAUSE");
    return 0;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

没有名字!!!

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值