- 新建文件”lab7_3.cpp“,编写程序声明一个车(vehicle)基类,由此派生出自行车(bicycle)类、汽车(motocar),注意把vehicle基类派生为虚基类。再从bicycle和motocar派生出摩托车(motocycle)类,在main()函数中执行这个类
时间: 2024-02-12 21:06:55 浏览: 144
好的,我理解了您的问题。以下是lab7_3.cpp的代码:
```c++
#include <iostream>
using namespace std;
class vehicle {
public:
virtual void show() {
cout << "This is a vehicle." << endl;
}
};
class bicycle : virtual public vehicle {
public:
void show() {
cout << "This is a bicycle." << endl;
}
};
class motocar : virtual public vehicle {
public:
void show() {
cout << "This is a motocar." << endl;
}
};
class motocycle : public bicycle, public motocar {
public:
void show() {
cout << "This is a motocycle." << endl;
}
};
int main() {
vehicle *p;
vehicle v;
bicycle b;
motocar m;
motocycle c;
p = &v;
p->show();
p = &b;
p->show();
p = &m;
p->show();
p = &c;
p->show();
return 0;
}
```
在这个程序中,我们定义了一个虚基类vehicle,它是自行车和汽车两个派生类的基类。在定义自行车和汽车类时,我们使用了虚继承。这样做是为了避免在派生类中出现多个vehicle实例的情况。
然后,我们又定义了一个摩托车类motocycle,它同时从自行车和汽车类派生。在main函数中,我们分别使用vehicle指针指向各个类的实例,并调用show函数展示它们的特点。
希望这个程序能够帮助您解决问题!
阅读全文