C上机实验报告实验六

C上机实验报告实验六

ID:42487648

大小:162.02 KB

页数:11页

时间:2019-09-16

C上机实验报告实验六_第1页
C上机实验报告实验六_第2页
C上机实验报告实验六_第3页
C上机实验报告实验六_第4页
C上机实验报告实验六_第5页
资源描述:

《C上机实验报告实验六》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、实验六多态性1.实验目的1•掌握运算符重载的方法2.学习使用虚函数实现动态多态性2.实验要求1•定义Point类,冇坐标_x,_y两个成员变量;对Point类重载"++〃(自增)、“——"(自减)运算符,实现对坐标值的改变。2.定义一个车(vehiele)基类,有Run、Stop等成员函数,由此派生出自行车(bicycle)类、汽车(motorcar)类,从bicycle和motorcar派生出摩托车(motorcycle)类,它们都有Run、Stop等成员函数。观察虚函数的作用。3.(选做)対实验4中

2、的People类重载“==”运算符和“二”运算符,“==”运算符判断两个people类对象的id属性是否相等;“二”运算符实现People类对象的赋值操作。3.实验内容及实验步骤1.编写程序定义Point类,在类屮定义整型的私有成员变量_x_y,定义成员函数Point&operator++();Pointoperator++(int);以实现对Point类重载“++"(自增)运算符,定义成员函数Point&operator();Pointoperator(int);以实现对Point类重载“”(自减)运

3、算符,实现对坐标值的改变。程序名:lab8_l.cppo2.编写程序定义一个车(vehicle)基类,冇Run、Stop等成员函数,由此派生出自行车(bicycle)类、汽车(motorcar)类,从bicycle和motorcar派生出摩托车(motorcycle)类,它们都有Run>Stop等成员函数。在main()函数中定义vehicle、bicycle、motorcar>motorcycle的对象,调用其Run()、Stop()函数,观察其执行情况。再分别用vehicle类型的指针来调用这儿个对

4、象的成员函数,看看能否成功;把Run、Stop定义为虚函数,再试试看。程序名:Iab8_2.cpp。4.思考题1.如何将一个运算符重载为类的成员函数?函数类型operator运算符(形参表){函数体;}2.如何将一个运算符重载为类的友沅函数?friend函数类型operator运算符(形参表){函数体;}3.如何实现运行时刻的多态?在幕类的成员函数前加上virtual,就町以在它的派生类中声明相同名字和类型的成员函数,在运行过程屮,系统会自动判断并调用和应类屮的成员函数,从而在调用过程屮实现多态。5.源

5、程序1.Iab8_l.cpp#includeviostream>usingnamespacestd;classPoint{private:int_x;int_y;public:〃构造•析构函数Point(){}Point(intjnt);~Point(){}//++••■重载Point&operator++();Pointoperator++(int);Point&operator・・();Pointoperator-(int);〃输出点坐标voidshowPointf);};Point::Point(

6、intx,inty){_x=x;_y=y;}Point&Point::operator++(){_x++;_y++;return*this;}PointPoint::operator++(int){Pointp=*this;++(*this);returnp;}Point&Point::operator-(){_x・・;_y-;return*this;}PointPoint::operator-(int)Pointp=*this;-(*this);returnp;}voidPoint::showPoin

7、t(){cout«HThepointis(,,«_x«,,/,,«_y«,,)l,«endl;}intmain(){Pointapoint(3,5);apoint.showPoint();(apoint++).showPoint();//测试后置++apoint.showPoint();(++apoint).showPoint();//测试询置++apoint.showPoint();(apoint-).showPointf);//测试后置-apoint.showPoint();(-apoint).sh

8、owPoint();//测试前置-apoint.showPoint();return0;}2・Iab8_2.cpp#includeviostream>usingnamespacestd;classVehicle{public:〃基类的成员函数为虚函数virtualvoidrun(){cout«,,Vehicleisrunning!H«endl;}virtualvoidstop(){cout«H/ehicleisstopping!H<

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。