Time类中的运算符重载(2)-二目运算符的重载
来源:互联网 发布:台州网络答题知识竞赛 编辑:程序博客网 时间:2024/04/30 21:56
问题描述及代码:
/* *copyright (c) 2016,烟台大学计算机学院*All rights reserved. *文件名称:hellow.cpp *作者:田甜*完成日期:2016年5月19日*版本号:v1.0 * *问题描述:实现Time类中的运算符重载。*输入描述:/// *程序输出:///*/#include <iostream>using namespace std;class CTime{private: unsigned short int hour,minute,second;public: CTime(int h=0,int m=0,int s=0):hour(h),minute(m),second(s){} void set_time(int h,int m,int s) { hour=h; minute=m; second=s; } void display(); CTime operator +(const CTime&t); CTime operator -(const CTime&t); CTime operator +(int t); CTime operator -(int t);};void CTime::display(){ cout<<hour<<":"<<minute<<":"<<second<<endl;}CTime CTime::operator+(const CTime &t){ int hh=hour+t.hour; int mm=minute+t.minute; int ss=second+t.second; if(ss>59) { ss-=60; mm++; } if(mm>59) { mm-=60; hh++; } if(hh>23) { hh-=24; } CTime t0; t0.set_time(hh,mm,ss); return t0;}CTime CTime::operator-(const CTime&t){ int hh=hour-t.hour; int mm=minute-t.minute; int ss=second-t.second; if(ss<0) { ss+=60; mm--; } if(mm<0) { mm+=60; hh--; } if(hh<0) { hh+=24; } CTime t0; t0.set_time(hh,mm,ss); return t0;}CTime CTime::operator+(int t){ int ss=0,mm=0,hh=0; ss+=t%60; mm+=(t/60)%60; hh+=t/3600; CTime t0(hh,mm,ss); return *this+t0;}CTime CTime::operator-(int t){ int ss=0,mm=0,hh=0; ss+=t%60; mm+=(t/60)%60; hh+=t/3600; CTime t0(hh,mm,ss); return *this-t0;}int main(){ CTime t1(5,10,20),t2(12,59,59); (t1+t2).display(); (t1-t2).display(); (t1+60).display(); (t2+1).display(); return 0;}
运行结果:
心得体会:
通过这几次的练习我发现,在执行两时间相加或者加上若干秒时,往往避免直接改变函数私有成员的值,而是通过定义新对象t0然后调用其set_time函数来实现的,最后将
t0返回。 0 0
- Time类中的运算符重载(2)-二目运算符的重载
- 第八周 项目2-Time类中的运算符重载之二目比较运算符的重载
- Time类中的运算符重载(1)-二目的比较运算符重载
- 【项目2-Time类中的运算符重载】实现Time类中的运算符重载
- test10-2(实现Time类中的运算符重载)
- 第九周项目二 Time类中的运算符重载(续)-(2)定义Time类的>>和<<
- 第九周项目二 Time类中的运算符重载(续)(2)定义Time类的>>和<<
- 第八周项目二----time类中的运算符重载
- 第八周 项目二:Time类中的运算符重载
- 第八周项目二time类中的运算符重载
- 第八周项目二-Time类中的运算符重载
- 第八周项目二 Time类中的运算符重载
- 第八周项目二:Time类中的运算符重载
- 第八周 项目二:Time类中的运算符重载
- 第八周项目二 Time类中的运算符重载
- 第八周 项目二 Time类中的运算符重载
- 第八周项目二 Time类中的运算符重载
- 第八周 项目二 Time类中的运算符重载
- Bottom Sheets(底部动作条)使用介绍
- 数据库原理 知识点总结
- 在Android上打造属于自己的Rxjava框架(三)操作符变换
- Java使用OpenCV类库实现简单的KNN Machine Learning.
- 第10,11周 项目三(2)
- Time类中的运算符重载(2)-二目运算符的重载
- Java的接口和抽象类详解
- DELPHI 中 Window 消息大全使用详解
- 報告。連絡。相談
- 第九周项目3-人数不定的工资类
- c++实验6—项目3
- [阶段一]Java基础语法-数据类型(2)
- oracle数据库高低版本之间导入导出(10g和11g),dmp格式
- [绍棠] ios常见问题解决