声明一个车(vehicle)基类,具有MaxSpeed(车速)、Weight(车重)整型成员变量,Run()、Stop()成员函数,要求车(vehicle)类的构造函数有两个参数对MaxSpeed、Weight进行赋值。 由其派生出汽车(motorcar)类,汽车(motorcar)具有座位数(SeatNum)属性,display()成员函数(输出车速、车重、座位数等信息)。继承方式为公有继承,汽车(motorcar)类的构造函数要求有参数,对车速、车重、座位数等初始化。 创建汽车(motorcar)类的对象,调用Run()、Stop()、display()函数。
时间: 2023-06-15 08:08:34 浏览: 395
用c++ 定义一个车(Vehicle)基类,有Run,Stop等成员函数,由此派生出自行车(bicycle)类,汽车(motorcar)
下面是实现该题目的代码:
```cpp
#include <iostream>
using namespace std;
class Vehicle {
protected:
int MaxSpeed;
int Weight;
public:
Vehicle(int maxSpeed, int weight): MaxSpeed(maxSpeed), Weight(weight) {}
virtual void Run() { cout << "Vehicle is running." << endl; }
virtual void Stop() { cout << "Vehicle has stopped." << endl; }
};
class Motorcar : public Vehicle {
private:
int SeatNum;
public:
Motorcar(int maxSpeed, int weight, int seatNum): Vehicle(maxSpeed, weight), SeatNum(seatNum) {}
void Run() { cout << "Motorcar is running." << endl; }
void Stop() { cout << "Motorcar has stopped." << endl; }
void display() {
cout << "MaxSpeed: " << MaxSpeed << endl;
cout << "Weight: " << Weight << endl;
cout << "SeatNum: " << SeatNum << endl;
}
};
int main() {
Motorcar myCar(120, 2000, 5);
myCar.Run();
myCar.Stop();
myCar.display();
return 0;
}
```
输出结果为:
```
Motorcar is running.
Motorcar has stopped.
MaxSpeed: 120
Weight: 2000
SeatNum: 5
```
在上面的代码中,我们首先定义了一个名为 `Vehicle` 的基类,并在其中定义了 `MaxSpeed` 和 `Weight` 两个整型成员变量,以及 `Run()` 和 `Stop()` 两个成员函数。接下来,我们又定义了一个名为 `Motorcar` 的子类,并在其中新增了一个名为 `SeatNum` 的整型成员变量,并且重写了 `Run()` 和 `Stop()` 函数。最后,我们使用 `display()` 函数输出了车的详细信息。
在 `main()` 函数中,我们创建了一个名为 `myCar` 的 `Motorcar` 类对象,并分别调用了其 `Run()`、`Stop()` 和 `display()` 函数。
阅读全文