定义一个车(vehicle)基类,具有MaxSpeed、Weight等成员变量,Run、Stop等成员函数,由此派生出自行车(bicycle)类、汽车(motorcar)类。自行车类有高度(height)等属性,汽车类有座位数(SeatNum)等属性。从bicycle和motorcar派生出摩托车(motorcycle)类,在继承过程中,注意把vehicle设置为虚基类。如果不把vehicle设置为虚基类,会有什么问题?编程试试看。
有代码么
追答你再追问,我再补充,要不贴不下
#include
#include
#include
#include
#include
using namespace std;
#include
class vehicle
{
public:
vehicle(){}
vehicle(double ms, double w): maxSpeed(ms), weight(w)
{}
virtual ~vehicle(){}
virtual void run()=0;
virtual void stop()=0;
virtual void display(){cout<< "最大时速: " << maxSpeed << "自重: " << weight << endl;}
private:
double maxSpeed;
double weight;
};
补充
追答后面还有
class bicycle: virtual public vehicle
{
public:
bicycle(): vehicle(20, 20){}
bicycle(double ms, double w): vehicle(ms, w){}
void run(){cout << "自行车骑" << endl;}
void stop() {cout << "自行车刹车" << endl;}
};
class motorcar: virtual public vehicle
{
public:
motorcar(): vehicle(200, 1000){}
motorcar(double ms, double w): vehicle(ms, w){}
void run(){cout << "汽车开" << endl;}
void stop() {cout << "汽车刹车" << endl;}
};
大神棒棒哒~
追答class motorcycle: virtual public bicycle, motorcar
{
public:
motorcycle(): vehicle(200, 500){}
motorcycle(double ms, double w): vehicle(ms, w){}
void run(){cout display();
v2->display();
v3->display();
v1->run();
v2->run();
v2->stop();
v3->run();
return 0;
}
有代码么