(1)基类Device 数据成员:double lifetime;构造函数Device(double)给lifetime初始化;纯虚函数 void function(); (2) Vehicle类,公用继承于Device 数据成员 double speed;构造函数Vehicle(想想这里写啥)初始化speed并输出“Vehicle’s constructor!” (4)iCar类,公用继承于Vehicle 构造函数iCar(想想这里写啥)初始化各个数据成员并输出“iCar’s constructor!” 成员函数void function()用于输出speed; (5)每个类中还可能有其它必要的函数。 (6)在主函数中定义iCar的对象car(此时所有数据成员都进行了初始化)
时间: 2024-03-08 21:48:21 浏览: 78
以下是代码实现:
```cpp
#include <iostream>
using namespace std;
class Device {
protected:
double lifetime;
public:
Device(double lt): lifetime(lt) {}
virtual void function() = 0;
};
class Vehicle: public Device {
protected:
double speed;
public:
Vehicle(double lt, double sp): Device(lt), speed(sp) {
cout << "Vehicle's constructor!" << endl;
}
};
class iCar: public Vehicle {
private:
string model;
public:
iCar(double lt, double sp, string md): Vehicle(lt, sp), model(md) {
cout << "iCar's constructor!" << endl;
}
void function() {
cout << "The speed of the iCar is " << speed << endl;
}
};
int main() {
iCar car(10.0, 100.0, "Tesla Model S");
car.function();
return 0;
}
```
解释一下:
- `Device` 是一个基类,其中包含一个 `lifetime` 数据成员和一个纯虚函数 `function()`。
- `Vehicle` 是一个公用继承于 `Device` 的类,其中包含一个 `speed` 数据成员和一个构造函数,用于初始化 `speed` 并输出一条信息。
- `iCar` 是一个公用继承于 `Vehicle` 的类,其中包含一个 `model` 数据成员和一个构造函数,用于初始化 `lifetime`、`speed` 和 `model` 并输出一条信息。成员函数 `function()` 用于输出 `speed`。
- 在主函数中定义了一个 `iCar` 类型的对象 `car`,并对其进行初始化。然后调用了它的成员函数 `function()`。
阅读全文