实现Time类中的运算符重载
来源:互联网 发布:剑三周边淘宝商城 编辑:程序博客网 时间:2024/05/17 22:58
/** 程序的版权和版本声明部分:* Copyright (c) 2013, 烟台大学计算机学院* All rights reserved.* 文件名称:test.cpp* 作 者:周经纬* 完成日期:2014年 4月 16日* 版 本 号:v12.1* 实现Time类中的运算符重载,* 输入描述:无* 问题描述:。* 程序输出:* 问题分析:略* 算法设计:略*/#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); void setTime(int h,int m,int s); void display(); //二目的比较运算符重载 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为: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::CTime(int h,int m,int s){ hour=h; minute=m; second=s;}void CTime::setTime(int h,int m,int s){ hour=h; minute=m; second=s;}void CTime::display(){ cout<<hour<<":"<<minute<<":"<<second<<endl;}//比较运算返回的是比较结果,是bool型的true或false//可以直接使用已经重载了的运算实现新运算,例如果已经实现了 > ,则实现 <= 就可以很方便了……bool CTime::operator > (CTime &t){ if (hour > t.hour) return true; if (hour< t.hour) return false; if (minute > t.minute) return true; if (minute < t.minute) return false; if (second> t.second) return true; return false;}bool CTime::operator < (CTime &t){ if (hour < t.hour) return true; if (hour> t.hour) return false; if (minute < t.minute) return true; if (minute > t.minute) return false; if (second< t.second) return true; return false;}bool CTime::operator ==(CTime &t){ if (hour==t.hour) return true; if (minute==t.minute) return true; if (second==t.second) return true; return false;}bool CTime::operator != (CTime &t){ if(*this==t) return false; return true;}//可以直接使用已经重载了的加减运算实现//这种赋值, 例如 t1+=20,直接改变当前对象的值,所以在运算完成后,将*this作为返回值CTime CTime::operator+(CTime &c){ int h,m,s; h=hour+c.hour; m=minute+c.minute; s=second+c.second; if (s>59) { s-=60; m++; } if (m>59) { m-=60; h++; } if (h>23) h-=24; CTime t3(h,m,s); return t3;}CTime CTime::operator-(CTime &c){ int h,m,s; h=hour-c.hour; m=minute-c.minute; s=second-c.second; if (s<0) { s+=60; m--; } if (m<0) { m+=60; h--; } if (h<0) h+=24; CTime t3(h,m,s); return t3;}int main(){ CTime t1(2,10,10),t2(3,9,11),t; cout<<"t1:"; t1.display(); cout<<"t2:"; t2.display(); cout<<"时间大小的比较:"<<endl; if(t1>t2) cout<<"t1>t2"<<endl; if(t1<t2) cout<<"t1<t2"<<endl; if(t1==t2) cout<<"t1=t2"<<endl; if(t1!=t2) cout<<"t1!=t2"<<endl; cout<<endl; cout<<"两时间的计算:"<<endl; t=t1+t2; t.display(); t=t1-t2; t.display();}//自行编制用于测试的main()函数,有些结果不必依赖display()函数,提倡用单步执行查看结果
虽然功能有点少,不过开始花了一节课吗、,硬是没明白怎么写,桑心啊,额,忘了写时间计算是加还是减,哈哈,
0 0
- 实现Time类中的运算符重载
- 实现Time类中的运算符重载
- 实现Time类中的运算符重载
- 【项目2-Time类中的运算符重载】实现Time类中的运算符重载
- 8-2 实现Time类中的运算符重载
- test10-2(实现Time类中的运算符重载)
- 8-2 实现Time类中的运算符重载
- 08.2:实现Time类中的运算符重载
- 9.2实现Time类中的运算符重载
- 第八周【项目2-Time类中的运算符重载】实现Time类中的运算符重载
- Time类中的运算符重载
- Time类中的运算符重载
- Time类中的运算符重载
- Time类中的运算符重载
- Time类中的运算符重载
- Time 类中的运算符重载
- Time类中的运算符重载
- Time类中的运算符重载
- C专家编程学习笔记一
- 南阳理工14(会场安排问题)
- Oracle EXP和IMP命令
- Project Euler 26~30
- 北京市生态环境质量现状分析(摘录)
- 实现Time类中的运算符重载
- eclipse xml文件中按alt+/没有提示信息
- JAVA中的不可变类
- 第八周项目一——运算符重载(运用友元函数)
- Android网络请求库android-async-http使用
- 快速学习正则表达式
- Reduce inversion count
- 呵呵
- 手把手学习——ant脚本打包APK