#include <iostream>
#include<cstring>
using namespace std;
class Time
{
private:
int Hour;
int Minute;
int Second;
public:
Time();
Time(int h,int m,int s);
Time(const Time& T);
Time Add(Time& T);
Time Sub(Time& T);
void Display();
void setX(int a)
{
Hour=a;
}
void setY(int b)
{
Minute=b;
}
void setZ(int c)
{
Second=c;
}
friend ostream& operator<<(ostream&os,const Time&T)
{
os<<T.Hour<<T.Minute<<T.Second;
return os;
}
};
Time::Time()
{
Hour=0;
Minute=0;
Second=0;
}
Time::Time(const Time& T)
{
Hour=T.Hour;
Minute=T.Minute;
Second=T.Second;
}
Time::Time(int h,int m,int s)
{
Hour=h;
Minute=m;
Second=s;
if(Hour>=24)
Hour=Hour%24;
if(Minute>=60)
Hour=Hour+1;
Minute=Minute%60;
if(Second>60)
Minute=Minute+1;
Second=Second%60;
}
Time t1,t2;
Time Time::Add(Time& T)
{
cout<<t1.Hour+t2.Hour<<" 时 "<<t1.Minute+t2.Minute<<" 分 "<<t1.Second+t2.Second<<" 秒 "<<endl;
}
Time Time::Sub(Time& T)
{
cout<<t1.Hour-t2.Hour<<" 时 "<<t1.Minute-t2.Minute<<" 分 "<<t1.Second-t2.Second<<" 秒 "<<endl;
}
void Time::Display()
{
cout<<Hour<<"时"<<Minute<<"分"<<Second<<"秒"<<endl;
}
void main()
{
cout<<"Time1:"<<t1.setX(10)<<"时"<<t1.setY(20)<<"分"<<t1.setZ(30)<<"秒"<<endl;
//error C2679: 二进制“<<”: 没有找到接受“void”类型的右操作数的运算符(或没有可接受的转换) 显示这个怎么改呀?
cout<<"Time2:"<<t2.setX(10)<<"时"<<t2.setY(15)<<"分"<<t2.setZ(30)<<"秒"<<endl;
Time Add.Display(); //error C2143: 语法错误 : 缺少“;”(在“.”的前面)
Time Sub.Display(); //error C2143: 语法错误 : 缺少“;”(在“.”的前面)
}