编程实现:有一个汽车类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;
}