【问题描述】
声明一个车(vehicle)基类,具有MaxSpeed,Weight等成员变量,Run,Stop等成员函数,其中Run函数输出“Run”,Stop函数输出“Stop”。
并由此派生出自行车(bicycle)类,汽车(motorcar)类。自行车(bicycle)类有高度(Height)等属性,汽车(motorcar)类有座位数(SeatNum)等属性。
再从bicycle类和motorcar类派生出摩托车(motocycle)类。
在继承过程中,注意把vehicle设置为虚基类。如果不把vehicle设置为虚基类,会有什么问题?编程试试看。主函数如下,请勿改动:
int main(){undefined
motocycle a;
a.Run();
a.Stop();
return 0;
}
调试过程中,你是否看到了error: request for member ‘Run’ is ambiguous。请问这句话怎么翻译?
【样例输出】
Run
Stop
代码如下
include
using namespace std;
class vehicle
{
private:
int MaxSpeed, Weight;
public:
void Run() { cout<<"Run"<<endl;}
void Stop() { cout<<"Stop"<<endl;}
};
class bicycle : virtual public vehicle
{
private:
int height;
};
class motorcar : virtual public vehicle
{
private:
int SeatNum;
};
class motocycle : public bicycle, public motorcar
{
};
int main()
{
motocycle a;
a.Run();
a.Stop();
return 0;
}