欢迎来到天天文库
浏览记录
ID:33823636
大小:68.17 KB
页数:6页
时间:2019-03-01
《贵州大学c实验报告6》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、贵州大学实验报告姓名高灿学号098060383实验组实验时间2011-05-30指导教师张文勇成绩实验项目名称多态性实验n的1.练习重载函数的使用。2.掌握运算符重载的方法。3.学习使用虚函数实现动态多态性。实验要求1.练习重载函数的使用。2.掌握运算符重载的方法。3.学习使用冷函数实现动态多态性。实验原理运用VC++编译器进行程序的编写与运行,根据题冃的要求完成相应的程序设计,运行程序,分析结果。注意错误信息提示和学会运用Debug功能调试程序。实验仪器Pc机VC++6.0环境实验步骤1.分别编写四个同名函数Maxi,实现函数重载,在nminO函数中测试函数
2、功能。程序名:lab6_l.cppo2.编写程序定义Point类,在类中定义整型的私有成员变量x、y,定义成员函数Pointoperator++();以实现对Point类重载"++”(自增)运算符,定义成员函数Pointoperator-();以实现对Point类重载“一”(自减)运算符,实现对坐标值的改变。程序名:lab6_2.cppo3.编写定义一,个车(vehicle)基类,有Run、Stop等成员函数,由此派生出自行学院:计算机科学与信息学院专业:网络工程班级:092车(bicycle)类、汽车(motorcar)类。从bicycle和motorcar
3、派生出摩托^(motorcycle)类,它们都有Run、Stop等成员函数,先把Run()、Stop()定义为虚函数,在main()函数中定义vehicle、bicycle、motorcar>motorcycle的对象,用vehicle类型的指针来调用这几个对象的成员函数Run()、Stop(),观察并分析其执行结果。然后不要定义为虚函数。看看结果是否还一样,分析说明原因。程序名:lab63.cppo1.编写重载函数Maxi可分别求取两个整数,三个整数,两个双精度数,三个双精度数的最大值。2.定义Point类,有坐标x,y两个成员变量;对Point类重载“++
4、”(自增)、“一”(自减)运算符,实现对坐标值的改变。3.定义一个车(vehicle)基类,具有Run、Stop等成员函数,由此派生出自行车(bicycle)类、汽车(motorcar)类。从bicycle和motorcar派生出摩托车(motorcycle)类,它们都有Run、Stop等成员函数。观察虚函数的作用。Bilab6_l.cpp^includeintnax1(intx9inty){return(x>y?x:y);>intnax1(intx9inty9intz){inttenp1=nax1(x,y);return(tenp1>
5、z?tenp1:z);>doublemaxi(doublex9doubley)实验数据{return(x>y?x:y);>doublemaxi(doublex9doubley9doublez){doubletemp1=nax1(x,y);return(tenp1>z?tenp1:z);>voidmain(){intx1,x2;doubled1,d2;x1=nax1(5,6);x2=nax1(2,3,4);d1=nax1(2.1,5.6);d2=nax1(12.3,3.4,7.8);cout««X1«endl;cout«・・*2=・・«x2«endl;cout«
6、«d1«endl;cout«iid2=ii«d2«endl;*C:Progra>FileslicrosoftVi1x1=6L<2=4dl=5.6d2=12.3Pressanykeytocontinuelab3_2.cppttincludeclassPoint{priuate:intx,y;public:Pointoperator++();Pointoperator―();Point()7、y;}PointPoint::operator++()if(x<1024)x+*;if(y<768)return*this;PointPoint:zoperator―()if(x>0)x—;iF(y>0)y—;return*this;}uoidmain(){Pointcout«的穗为:'・«A・Getx()«M,11«A・Gety()«endl;A—;cout«U的值为:iB«A.Getx()«11,11«A.GetyO«endl;A++:cout+*A;coutA—;cout—A;coutcoutB";cout♦♦B;coutB—;cout—B;cout«和8、的值为:«和的值为:«%的值为:«%的
7、y;}PointPoint::operator++()if(x<1024)x+*;if(y<768)return*this;PointPoint:zoperator―()if(x>0)x—;iF(y>0)y—;return*this;}uoidmain(){Pointcout«的穗为:'・«A・Getx()«M,11«A・Gety()«endl;A—;cout«U的值为:iB«A.Getx()«11,11«A.GetyO«endl;A++:cout+*A;coutA—;cout—A;coutcoutB";cout♦♦B;coutB—;cout—B;cout«和
8、的值为:«和的值为:«%的值为:«%的
此文档下载收益归作者所有