C++多态性实验报告含代码和结果截图

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

C++多态性实验报告含代码和结果截图
实验报告
课程:面向对象技术学号:
姓名:
班级:
教师:
计算机科学与技术系
实验六多态性
一、实验目的及要求
1.掌握运算符重载的方法;
2.掌握使用虚函数实现动态多态性。

二、实验环境
硬件:计算机软件:Microsoft Visual C++
三、实验内容
声明一个车(vehicle)基类,有Run、Stop等成员函数,由此派生出自行车(bicycle)类、汽车(motorcar)类,从bicycle和motorcar派生出摩托车(motorcycle)类,它们都有Run、Stop等成员函数。

观察虚函数的作用。

四、实验结果(附截图)
五、总结
通过本次实验,我对虚函数、多态性有了进一步了解,对多态性也有了更深的认识,实验中还是有很多的问题不是很清楚,平时要认真学习好理论知识,这样才能在做实验时更好的理解代码,才能更快的改正自己调试时遇到的错误。

六、附录(源程序清单)
#include
using namespace std;
int sign=0;
class vehicle
{
vehicle(float m,float w)
{
if(m<240&&m>0)
MaxSpeed=m;
else
{
cout<<"汽车超速!"<<endl;< p="">
sign=1;
return;
}
if(w<500&&w>0)
Weight=w;
else
{
cout<<"汽车超重!"<<endl;< p="">
sign=1;
return;
}
cout<<"构造了一个vehicle对象"<<endl;< p="">
}
virtual void Run() { cout<<"vehicle Run 函数被调用"<<endl;}< p="">
virtual void Stop(){ cout<<"vehicle Stop 函数被调用"<<endl<<="">
float MaxSpeed;
float Weight;
}
class bicycle:virtual public vehicle
{
public:
bicycle(float h,float m,float w):vehicle(m,w)
{
if(h<1.5&&h>0)
Height=h;
else
cout<<"自行车超高!"<<endl;< p="">
sign=1;
return;
}
cout<<"构造了一个bicycle对象"<<endl;< p="">
}
void Run() { cout<<"bicycle Run 函数被调用"<<endl;}< p=""> void Stop(){ cout<<"bicycle Stop 函数被调用"<<endl<<endl;}< p="">
private:
float Height;
}
class motorcar:virtual public vehicle
{
public:
motorcar(float s,float m,float w):vehicle(m,w)
{
if(s<2&&s>0)
SeatNum=s;
else
{
cout<<"摩托车超载!"<<endl;< p="">
sign=1;
return;
}
cout<<"构造了一个motorcar对象"<<endl;< p="">
}
void Run() { cout<<"motorcar Run 函数被调用"<<endl;}< p="">
void Stop(){ cout<<"motorcar Stop 函数被调用"<<endl<<endl;}< p="">
private:
float SeatNum;
}
class motorcycle:public bicycle,public motorcar
{
public:
motorcycle(float h,float s,float m,float w):bicycle(h,m,w),motorcar(s,m,w),vehi cle(m,w)
{
if(sign==0)
{
cout<<"构造了一个motorcycle对象"<<endl;< p="">
}
}
void Run() { cout<<"motorcycle Run 函数被调用"<<endl;}< p="">
void Stop(){ cout<<"motorcycle Stop 函数被调用"<<endl<<endl;}< p="">
};
void main ()
{
float m,w,h,s;
int p;
do{
sign=0;
cout<<"请输入参数:"<<endl<<endl;< p="">
cout<<"汽车最高时速(km/h)";
cin>>m;
cout<<"汽车重量(t)";
cin>>w;
cout<<"自行车高度(m)";
cin>>h;
cout<<"摩托车座位(个)";
cin>>s;
motorcycle car(h,s,m,w);
if(sign==0)
{
car.Run();
car.Stop();
}
else
{
cout<<"1—重新输入2——结束程序";
cin>>p;
if(p==2)
return;
else
cout<<endl<<endl;< p=""> }
}while(sign==1);
}
</endl<<endl;<>
</endl<<endl;<>
</endl<<endl;}<>
</endl;}<>
</endl;<>
</endl<<endl;}<>
</endl;}<>
</endl;<>
</endl;<>
</endl<<endl;}<>
</endl;}<>
</endl;<>
</endl;<>
</endl<
</endl;}<>
</endl;<>
</endl;<>
</endl;<>。

相关文档
最新文档