C++之虚基类

【任务】

在【任务3】的基础上,由自行车(Bicycle)类、汽车(Motorcar)类派生出摩托车(MotorCycle)类。在继承过程中注意把Vehicle设置为虚基类

实验要求

如果不把Vehicle设置为虚基类,会有什么问题?并分析原因。

#include 
using namespace std;
class Vehical
{
public:
	Vehical(){Weight=0;Maxspeed=0;}
	~Vehical(){}
protected:
	int Maxspeed;
	int Weight;
};
class Bike:virtual  public Vehical
{
public:
	Bike(){Height=1;}
	void Set(int s,int w){Maxspeed=s;Weight=w;}
	~Bike(){}
	void Display(){cout<<"The information of Bike:\n"<<"Maxspeed:"<

C++之虚基类_第1张图片

      如果不把Vehicle设置成虚基类的话,会出现[Error] reference to 'Maxspeed' is ambiguous等错误,因为编译器认为继承的Maxspeed是含糊不清的,继承的两个类Bike和Motorcar里面都有Maxspeed。

 

 

你可能感兴趣的:(C++)