c++ 4、设计一个抽象类vehicle,由它派生出类car和类truck。类car包含名称、颜色、载客数等3个数据成员,类truck包含名称、颜色、载重量3个数据成员。纯虚函数用以输出数据成员(对>>和<<使用运算符重载)。
时间: 2024-02-25 17:53:50 浏览: 166
好的,这是一个关于C++面向对象编程的问题。下面是一个简单的实现,可能不是最优解,但可以满足要求:
```c++
#include <iostream>
#include <string>
using namespace std;
// 抽象类vehicle
class vehicle {
public:
virtual void getInfo() = 0; // 纯虚函数,用于输出数据成员
protected:
string name; // 名称
string color; // 颜色
};
// 类car
class car : public vehicle {
public:
car(string n, string c, int p) { // 构造函数
name = n;
color = c;
passenger = p;
}
void getInfo() { // 实现纯虚函数
cout << "name: " << name << endl;
cout << "color: " << color << endl;
cout << "passenger: " << passenger << endl;
}
private:
int passenger; // 载客数
};
// 类truck
class truck : public vehicle {
public:
truck(string n, string c, int w) { // 构造函数
name = n;
color = c;
weight = w;
}
void getInfo() { // 实现纯虚函数
cout << "name: " << name << endl;
cout << "color: " << color << endl;
cout << "weight: " << weight << endl;
}
private:
int weight; // 载重量
};
int main() {
car c("BMW", "Black", 5); // 创建car对象
truck t("Benz", "White", 1000); // 创建truck对象
vehicle* v1 = &c; // 指向car对象的vehicle指针
vehicle* v2 = &t; // 指向truck对象的vehicle指针
v1->getInfo(); // 调用纯虚函数输出数据成员
cout << endl;
v2->getInfo(); // 调用纯虚函数输出数据成员
return 0;
}
```
这个程序定义了一个抽象类vehicle,包含一个纯虚函数getInfo(),用于输出数据成员。类car和类truck分别继承自vehicle,并且实现了getInfo()函数。在main函数中,我们创建了一个car对象和一个truck对象,并利用指向vehicle的指针来调用getInfo()函数,输出数据成员。
阅读全文