c++实验报告(5)

2019-04-23 12:29

/*3) 定义一个车(vehicle)基类,具有MaxSpeed、Weight等成员变量,Run、Stop等成员函数,

由此派生出自行车(bicycle)类,汽车(motorcar)类。自行车(bicycle)类有高度(Height)等属性,

汽车(motorcycle)类有座位数(SeatNum)等属性。从bicycle和motorcycle派生出摩托车(Motorcar)类, 在继承过程中,注意把vehicle设置为虚基类。如果不把vehicle 设置为虚基类,会有什么问?编程实验及分析原因。*/ #include using namespace std; class vehicle{ public:

vehicle(int MaxSpeed0,int Weight0):MaxSpeed(MaxSpeed0),Weight(Weight0){} int MaxSpeed,Weight; void Run(){cout<<\ void Stop(){cout<<\ void show(){cout<<\ cout<<\ };

class bicycle:virtual public vehicle{ public: bicycle(int MaxSpeed0,int Weight0,int Height0):vehicle(MaxSpeed0,Weight0){Height=Height0;} int Height;

void show(){cout<<\};

class motorcycle:virtual public vehicle{ public: motorcycle(int MaxSpeed0,int Weight0,int SeatNum0):vehicle(MaxSpeed0,Weight0){SeatNum=SeatNum0;} int SeatNum; void show(){cout<<\};

class Motorcar:public bicycle,public motorcycle{ public: Motorcar(int MaxSpeed0,int Weight0,int Height0,int SeatNum0):vehicle(MaxSpeed0,Weight0),

bicycle(MaxSpeed0,Weight0,Height0),motorcycle(MaxSpeed0,Weight0, SeatNum0){} int MaxSpeed0;int Weight0; void show(){vehicle::show();motorcycle::show();bicycle::show();} };

void main(){ Motorcar m(1,2,3,4); m.show(); m.Run(); m.Stop(); return ; }

实验五

/*1) 定义Point类,有坐标x,y两个私有成员变量;对Point类重载\(相加)、\(相减)和\(相等)运算符,实现对坐标的改变,

要求用友元函数和成员函数两种方法实现。对Point类重载<<运算符,以使得代码 Point p; cout< class Point{ public: Point(int x=0,int y=0):x(x),y(y){} Point operator+(const Point &p2) const; Point operator-(const Point &p2) const; Point operator==(const Point &p2) const; void show()const; friend Point operator+(Point &p1,Point &p2); friend Point operator-(Point &p1,Point &p2); friend Point operator==(Point &p1,Point &p2); friend ostream & operator<<(ostream &out,const Point &p);

private: int x,y; };

Point Point::operator +(const Point &p2)const{ return Point(x+p2.x,y+p2.y); }

Point Point::operator -(const Point &p2)const{ return Point(x-p2.x,y-p2.y); }

Point Point::operator ==(const Point &p2)const{ return Point(x==p2.x,y==p2.y); }

Point operator+(Point &p1,Point &p2) { return Point(p1.x+p2.x,p1.y+p2.y); }

Point operator-(Point &p1,Point &p2) { return Point(p1.x-p2.x,p1.y-p2.y); }

Point operator==(Point &p1,Point &p2) { return Point(p1.x==p2.x,p1.y==p2.y); }

ostream & operator<<(ostream &out,const Point &p){ out<<\ return out; }

int main(){ Point p1(8,10),p2(6,3),p3,p(1,2);

cout<<\第一个坐标为:\ cout<

/*2) 定义一个车(vehicle)基类,有虚函数Run、Stop等成员函数,由此派生出自行车(bicycle)类、汽车(motorcar)类,

它们都有Run、Stop等成员函数。在主函数中用不同的方法调用Run、Stop成员函数,观察这些函数的执行结果,思考如何实现动态多态性,

如果Run、Stop没有被定义为虚函数,执行结果会怎样,把结果和分析写入实验报告。*/

#include using namespace std; class vehicle{ public:

vehicle(){}

virtual void Run() const {cout<<\ virtual void Stop() const {cout<<\ };

class bicycle: public vehicle{ public:

void Run() const {cout<<\ void Stop() const {cout<<\};

class motorcar:public vehicle{ public:


c++实验报告(5).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:湘教版四年级美术上册知识点复习

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: