欢迎来到天天文库
浏览记录
ID:19494436
大小:269.12 KB
页数:9页
时间:2018-10-02
《c++ 基于时间类的运算符重载实验》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、实验:定义一个时间类Time(时,分,秒),通过操作符重载实现:时间的比较(==、!=、>、>=、<、<=)、时间增加/减少若干秒(+=、-=)由题意,我定义了一个时间类Time,并且定义时(shi),分(fen),秒(miao)这些私有数据成员。然后在main函数那里就可以通过构造函数定义一个时间了。如下图所示:由上图可知,我还对(==、!=、>、>=、<、<=)这些运算符进行了重载,返回bool类型的值。而且,对于时间增加/减少若干秒,我用友元函数方式让一个时间类Time和int类型的数值(秒)相加。下面我将
2、对各种运算符重载做详细说明。1:首先,我们来看“==”这个运算符重载。它在Cpp文件里的定义如下:由上可知,只有两个时间类的时,分,秒分别相等,才能返回一个true值,否则返回一个false值。具体程序是通过条件语句构造而成,一目了然。而我们在main函数里先定义两个时间类time0,time1。分别让它们相等和不相等运行一次,实验结果如下:2:我们来看“!=”这个运算符重载。它在Cpp文件里定义如下:由上可知,它就是把“==”运算符重载函数里的true和false互换而已,却起到了相反的效果。实验结果如下:3:
3、我们来看“>”这个运算符重载。它在Cpp文件里定义如下:由上可知,程序有点复杂了,不过思路还是很清晰的。首先,通过比较两个时间类的时,看它们是否符合大于等于关系,如果没有则返回false值。然后比较时是否相等,如果不相等则说明第一个类的时一定大于第二个类的时,则返回true值。比较完时,如果在时相等的情况下,再来比较分,与比较时的程序相同,能轻松得出两个类的分的大小。在分也相等的情况下,再来比较秒,如果大于则返回true值,否则返回false值。至此,两类的时间大小可比较出来是否存在大于关系。鉴于有多种情况,我就
4、其中3种进行截图。实验结果如下:………………………………..4:我们来看“>=”这个运算符重载。它在Cpp文件里定义如下:相比“=”这种情况,程序的量相差无几。不过在一个地方做了改动。最后在比较秒的时候,如果满足大于等于关系就能都返回true值。实验结果如下:…………………………..5:我们来看“<”这个运算符重载。它在Cpp文件里定义如下:由上可知,因为“<”与“>”是相反关系,所以把“>”函数里的“>”号改为“<”号就行了。实验结果如下:…………………………………………….6:我们来看“<=”这个运算符重载。
5、它在Cpp文件里定义如下:鉴于“<=”与“>=”的关系也是相反的,故修改如同上面所示。实验结果如下:7:我们来看“+=”这个运算符重载。它在Cpp文件里定义如下:让一个int型的值与时间类的秒相加,如果溢出则进位到分,实验结果如下:8:我们来看“-=”这个运算符重载。它在Cpp文件里定义如下:秒相减,如果不够则借位,实验结果如下所示:至此,所有运算符重载操作解说完成,下面附上总的实验结果截图:总结:此次实验充分让我理解了运算符重载的含义,并且锻炼了我对C文件的管理能力,可能代码有需要简化的地方,希望能与老师多多交
6、流。也希望以后能多一点这样的实验。
此文档下载收益归作者所有