第12周项目2-Time类中的运算符重载
2016-05-23 20:00
316 查看
#include<iostream> using namespace std; class CTime { private: unsigned short int hour; // 时 unsigned short int minute; // 分 unsigned short int second; // 秒 public: CTime(int h=0,int m=0,int s=0):hour(h),minute(m),second(s){} void setTime(int h,int m,int s){ hour=h;minute=m;second=s;} void display(){cout<<hour<<":"<<minute<<":"<<second<<endl;} //二目的比较运算符重载 bool operator > (CTime &t); bool operator < (CTime &t); bool operator >= (CTime &t); bool operator <= (CTime &t); bool operator == (CTime &t); bool operator != (CTime &t); //二目的加减运算符的重载 //返回t规定的时、分、秒后的时间 //例t1(8,20,25),t2(11,20,50),t1+t2为19:41:15 CTime operator+(CTime &t); CTime operator-(CTime &t);//对照+理解 CTime operator+(int s);//返回s秒后的时间 CTime operator-(int s);//返回s秒前的时间 //二目赋值运算符的重载 CTime &operator+=(CTime &c); CTime &operator-=(CTime &c); CTime &operator+=(int s);//返回s秒后的时间 CTime &operator-=(int s);//返回s秒前的时间 //一目运算符的重载 CTime operator++(int);//后置++,下一秒 CTime &operator++();//前置++,下一秒 CTime operator--( int);//后置--,前一秒 CTime &operator--();//前置--,前一秒 }; bool CTime::operator > (CTime &t) { if(hour>t.hour) return true; else if(minute>t.minute) return true; else if(second>t.second) return true; else return false; } bool CTime::operator <= (CTime &t) { if(*this>t) return false; else return true; } bool CTime::operator < (CTime &t) { if(hour<t.hour) return true; else if(minute<t.minute) return true; else if(second<t.second) return true; else return false; } bool CTime::operator >= (CTime &t) { if(*this<t) return false; else return true; } bool CTime::operator == (CTime &t) { if(hour==t.hour&&minute==t.minute&&second==t.second) return true; else return false; } bool CTime::operator!=(CTime &t) { if(*this==t) return false; else return true; } CTime CTime::operator+(CTime &t) { return CTime(hour+t.hour,minute+t.minute,second+t.second); } CTime CTime::operator-(CTime &t) { return CTime(hour-t.hour,minute-t.minute,second-t.second); } CTime CTime::operator+(int s) { return CTime(hour,minute,second+s); } CTime CTime::operator-(int s) { return CTime(hour,minute,second-s); } CTime & CTime::operator+=(CTime &c) { this->hour+=c.hour; this->minute+=c.minute; this->second+=c.second; return *this; } CTime & CTime::operator-=(CTime &c) { this->hour-=c.hour; this->minute-=c.minute; this->second-=c.second; return *this; } CTime & CTime::operator+=(int s) { this->second+=s; return *this; } CTime & CTime::operator-=(int s) { this->second-=s; return *this; } CTime CTime::operator++(int) { this->second++; return *this; } CTime CTime::operator--(int) { this->second--; return *this; } CTime & CTime::operator++() { ++this->second; return *this; } CTime & CTime::operator--() { --this->second; return *this; } int main() { CTime a(11,11,11); a.display(); CTime b(1,1,1); CTime c; c=a+b; c.display(); a--; a.display(); b++; b.display(); while(1) { if(a>b) {cout<<"a>b"<<endl; break;} else {cout<<"a<=b"<<endl;break;} } --a; a.display(); ++b; b.display(); return 0; }运行结果:
相关文章推荐
- NYOJ_247_虚拟的城市之旅,最短路
- Java泛型学习-理解泛型的内部实现
- python 模块zlib 压缩与解压
- 深入理解计算机系统(一)A tour of computer systems
- Android性能优化方案
- 3.Linux应用编程——进程
- C语言学习之旅
- Ubuntu 修改键盘默认布局 Ctrl 与 CapsLock 替换
- Linux uniq命令
- 测试接口是否正确应考虑的因素
- 第十三周项目56-形状类族中的纯虚函数
- Git远程仓库
- jquery ajax学习之路
- Java - 蓝桥杯 - 历届试题 买不到的数目(扩展欧几里得)
- JVM--类文件结构
- spark介绍
- Linux C函数strtok解析
- C++中的struct与class继承方式
- hdu1664 放苹果(经典简单dfs)
- 如何快速又正确地在C++里实现锁