声明一个车(vehicle)基类,具有MaxSpeed、weight等成员变量,Run、Stop等成员函数,由此派生出自行车(bicycle)类、汽车(motorcar)类。自行车(bicycle)和有高度(Height)等属性,汽车(motocar)类有座位数(S编写程序声明一个车(vehicle)基类,由此派生出自行车(bicycle)类、汽车(motocar),注意把vehicle基类派生为虚基类。再从bicycle和motocar派生出摩托车(motocycle)类,在main()函数中执行这个类
时间: 2024-02-12 11:07:33 浏览: 101
的示例代码。
以下是代码实现:
```cpp
#include <iostream>
using namespace std;
class vehicle {
public:
float MaxSpeed;
float weight;
virtual void Run() {
cout << "Vehicle is running." << endl;
}
virtual void Stop() {
cout << "Vehicle has stopped." << endl;
}
};
class bicycle : virtual public vehicle {
public:
float Height;
};
class motorcar : virtual public vehicle {
public:
int Seats;
};
class motorcycle : public bicycle, public motorcar {
public:
void Run() {
cout << "Motorcycle is running." << endl;
}
void Stop() {
cout << "Motorcycle has stopped." << endl;
}
};
int main() {
motorcycle m;
m.MaxSpeed = 100;
m.weight = 150;
m.Height = 1.2;
m.Seats = 2;
m.Run();
m.Stop();
return 0;
}
```
这个程序声明了一个车(vehicle)基类,具有MaxSpeed、weight等成员变量,Run、Stop等成员函数,并把vehicle基类派生为虚基类。然后派生出自行车(bicycle)类和汽车(motorcar)类,并从它们派生出摩托车(motorcycle)类。
在main()函数中,创建了一个摩托车对象m,并设置了它的各种属性。然后调用了它的Run()和Stop()函数,输出了相应的信息。
由于vehicle基类被派生为虚基类,摩托车类中继承的vehicle成员不会有多个拷贝,避免了多重继承的问题。
阅读全文