欢迎来到天天文库
浏览记录
ID:40337339
大小:132.51 KB
页数:9页
时间:2019-07-31
《C++上机实验报告实验六》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、实验六实验目的1.掌握运算符重载的方法2.学习使用虚函数实现动态多态性实验要求1.定义Point类,有坐标_x,_y两个成员变量;对Point类重载“++”(自增)、“――”(自减)运算符,实现对坐标值的改变。2.定义一个车(vehiele)基类,有Run、Stop等成员函数,由此派生出自行车(bicycle)类、汽车(motorcar)类,从bicycle和motorcar派生出摩托车(motorcycle)类,它们都有Run、Stop等成员函数。观察虚函数的作用。3.(选做)对实验4中的Peopl
2、e类重载“==”运算符和“-”运算符,“==”运算符判断两个people类对象的id属性是否相等;“-”运算符实现People类对象的赋值操作。实验内容及实验步骤1.编写程序定义Point类,在类中定义整型的私有成员变量_x_y,定义成员函数Point&operator++();Pointoperator++(int);以实现对Point类重载“++”(自增)运算符,定义成员函数Point&operator--();Pointoperator--(int);以实现对Point类重载“--”(自减)运算
3、符,实现对坐标值的改变。程序名:1ab8_1.Cpp#includeusingnamespacestd;classPoint{public:Point();Point(intx,inty);~Point(){}//Point类析构函数Point&operator++();//公有成员函数Pointoperator++(int);Point&operator--();Pointoperator--(int);voidShow();private:int_x;//私有数据成员int_y
4、;};Point::Point(){//Point类构造函数_x=0;_y=0;}Point::Point(intx,inty)//Point类构造函数{_x=x;_y=y;}Point&Point::operator++()//重载后置++运算符为Point类成员函数{_x++;_y++;}PointPoint::operator++(int)//重载前置++运算符为Point类成员函数{Pointold=*this;++(this->_x);++(this->_y);returnold;}Poin
5、t&Point::operator--()//重载后置--运算符为Point类成员函数{_x--;_y--;}PointPoint::operator--(int)//重载前置--运算符为Point类成员函数{Pointold=*this;--(this->_x);--(this->_y);returnold;}voidPoint::Show()//输出Point的坐标值{cout<<_x<<","<<_y<<")"<6、象aPointb=a++;//定义Point类对象b并用a++初始化bPointc=++a;//定义Point类对象c并用++a初始化cPointd=--a;//定义Point类对象d并用--a初始化dPointe=a--;//定义Point类对象e并用a--初始化ecout<<"Pointa(";a.Show();//输出a的坐标cout<<"Pointb(";b.Show();//输出b的坐标cout<<"Pointc(";c.Show();//输出c的坐标cout<<"Pointd(";d.Sh7、ow();//输出d的坐标cout<<"Pointe(";e.Show();//输出e的坐标return0;}运行结果:2编写程序定义一个车(vehicle)基类,有Run、Stop等成员函数,由此派生出自行车(bicycle)类、汽车(motorcar)类,从bicycle和motorcar派生出摩托车(motorcycle)类,它们都有Run、Stop等成员函数。在main()函数中定义vehicle、bicycle、motorcar、motorcycle的对象,调用其Run()、Stop()函数8、,观察其执行情况。再分别用vehicle类型的指针来调用这几个对象的成员函数,看看能否成功;把Run、Stop定义为虚函数,再试试看。程序名:lab8_2.cpp#includeusingnamespacestd;classvehicle//基类vehicle{public:vehicle(){}~vehicle(){}virtualvoidRun(){cout<<"Thevehicleisrunning!"<
6、象aPointb=a++;//定义Point类对象b并用a++初始化bPointc=++a;//定义Point类对象c并用++a初始化cPointd=--a;//定义Point类对象d并用--a初始化dPointe=a--;//定义Point类对象e并用a--初始化ecout<<"Pointa(";a.Show();//输出a的坐标cout<<"Pointb(";b.Show();//输出b的坐标cout<<"Pointc(";c.Show();//输出c的坐标cout<<"Pointd(";d.Sh
7、ow();//输出d的坐标cout<<"Pointe(";e.Show();//输出e的坐标return0;}运行结果:2编写程序定义一个车(vehicle)基类,有Run、Stop等成员函数,由此派生出自行车(bicycle)类、汽车(motorcar)类,从bicycle和motorcar派生出摩托车(motorcycle)类,它们都有Run、Stop等成员函数。在main()函数中定义vehicle、bicycle、motorcar、motorcycle的对象,调用其Run()、Stop()函数
8、,观察其执行情况。再分别用vehicle类型的指针来调用这几个对象的成员函数,看看能否成功;把Run、Stop定义为虚函数,再试试看。程序名:lab8_2.cpp#includeusingnamespacestd;classvehicle//基类vehicle{public:vehicle(){}~vehicle(){}virtualvoidRun(){cout<<"Thevehicleisrunning!"<
此文档下载收益归作者所有