inlision 鑫 程序实例 5.6# 【例5-17】继承与派生例题。 编写一个程序,有一个汽车类vehicle,它具 有带参数的构 造函数,显示输出函数,获得车轮个数、车重函数,类中 的私有数据成员为车轮个数wheels和车重weight;小车 类car是汽车类vehicle公有派生类,其中包含载客人数 passenger_load,获得载客人数、打印输出所有小车信息 函数;卡车类truck是汽车类vehicle公有派生类,其中包 含载客人数passenger load和载重量payload,获得载客 人数, 计算卡车效率函数efficiency0(效率:(载重量(载 重量+车重),打印输出卡车所有信息函数,主函数创建 小车类及卡车类对象,分别调用两个对象的显示输出函数。
时间: 2024-02-23 12:02:13 浏览: 148
好的,这是一个继承与派生的例题,下面是示例代码:
```C++
#include <iostream>
using namespace std;
class vehicle {
protected:
int wheels; // 车轮个数
float weight; // 车重
public:
vehicle(int w, float we) : wheels(w), weight(we) {}
void display() {
cout << "车轮个数:" << wheels << endl;
cout << "车重:" << weight << endl;
}
int get_wheels() { return wheels; }
float get_weight() { return weight; }
};
class car : public vehicle {
private:
int passenger_load; // 载客人数
public:
car(int w, float we, int p) : vehicle(w, we), passenger_load(p) {}
void display() {
vehicle::display();
cout << "载客人数:" << passenger_load << endl;
}
int get_passenger_load() { return passenger_load; }
};
class truck : public vehicle {
private:
int passenger_load; // 载客人数
float payload; // 载重量
public:
truck(int w, float we, int p, float pay) : vehicle(w, we), passenger_load(p), payload(pay) {}
void display() {
vehicle::display();
cout << "载客人数:" << passenger_load << endl;
cout << "载重量:" << payload << endl;
cout << "效率:" << efficiency() << endl;
}
int get_passenger_load() { return passenger_load; }
float get_payload() { return payload; }
float efficiency() { return payload / (payload + weight); }
};
int main() {
car c(4, 1.5, 5);
c.display();
truck t(6, 3.5, 6, 10);
t.display();
return 0;
}
```
这个程序定义了一个`vehicle`类,它有车轮个数和车重两个私有成员变量,以及构造函数和一个显示输出的函数。然后定义了一个公有派生类`car`,它增加了一个载客人数的成员变量,并重载了`display`函数。最后又定义了一个公有派生类`truck`,它增加了一个载重量的成员变量,并增加了一个计算效率的函数`efficiency`,同时也重载了`display`函数。
在主函数中,分别创建了一个`car`对象和一个`truck`对象,并调用它们的`display`函数进行输出。
阅读全文