贺老师的教学链接 本课讲解
#include
using namespace std;
class CTime
{
private:unsigned short int hour; // 时unsigned short int minute; // 分unsigned short int second; // 秒
public:CTime(int h&#61;0,int m&#61;0,int s&#61;0);void setTime(int h,int m,int s);//输入输出运算的重载friend istream &operator>>(istream &in,CTime &t);friend ostream &operator<<(ostream &out,const CTime &t);//比较运算符(二目)的重载bool operator > (CTime &t);bool operator <(CTime &t);bool operator >&#61; (CTime &t);bool operator <&#61; (CTime &t);bool operator &#61;&#61; (CTime &t);bool operator !&#61; (CTime &t);//二目运算符的重载CTime operator&#43;(CTime &c);//返回c所规定的时、分、秒后的时间&#xff0c;例t1(8,20,25),t2(11,20,50)&#xff0c;t1&#43;t2为:41:15CTime operator-(CTime &c);//对照&#43;理解CTime operator&#43;(int s);//返回s秒后的时间CTime operator-(int s);//返回s秒前的时间//一目运算符的重载CTime operator&#43;&#43;(int);//后置&#43;&#43;&#xff0c;下一秒CTime operator&#43;&#43;();//前置&#43;&#43;&#xff0c;下一秒CTime operator--(int);//后置--&#xff0c;前一秒CTime operator--();//前置--&#xff0c;前一秒//赋值运算符的重载CTime operator&#43;&#61;(CTime &c);CTime operator-&#61;(CTime &c);CTime operator&#43;&#61;(int s);//返回s秒后的时间CTime operator-&#61;(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&#61;h;minute&#61;m;second&#61;s;
}// 重载输入运算符>>
istream &operator>>(istream &in,CTime &t)
{char ch1,ch2;while(1){cout<<"请输入时间(hh:mm:ss) ";cin>>t.hour>>ch1>>t.minute>>ch2>>t.second;if (ch1&#61;&#61;&#39;:&#39; && ch2&#61;&#61;&#39;:&#39;)if (t.hour>-1 && t.hour<24 && t.minute>-1 && t.minute<60 && t.second>-1 && t.second<60) break;cerr<<"时间格式不正确! 请重新输入\n";}return cin;
}// 重载输出运算符<<
ostream &operator<<(ostream &out, const CTime &t)
{out<}