帮我看下代码有错误谢谢
#include <iostream.h>
#include <math.h>
class time
{
private:
int hours;
int minutes;
public:
time(int h=0,int m=0);
friend time operator +(const time &a,const time &b);
friend time operator -(const time &a,const time &b);
friend time operator *(const time &a,double & b);
friend time operator *(double &b,const time &a);
friend ostream & operator<<(ostream &a,const time &b);
};
time::time(int h,int m)
{
hours=h;
minutes=m;
}
time operator +(const time &a,const time &b)
{
time sum;
sum.minutes=a.minutes+b.minutes;
sum.hours=a.hours+b.hours+sum.minutes/60;
sum.minutes%=60;
return sum;
}
time operator -(const time &a,const time &b)
{
time sum;
int tof1,tof2;
tof1=b.minutes+b.hours*60;
tof2=a.minutes+a.hours*60;
sum.minutes=abs(tof1-tof2)%60;
sum.hours=abs(tof1-tof2)/60;
return sum;
}
time operator *(const time &a,const double &b)
{
time sum;
long int i=a.hours*b*60+a.minutes*b;
sum.hours=i/60;
sum.minutes=i%60;
return sum;
}
time operator *(double &b,const time &a)
{
return a*b;
}
ostream & operator<<(ostream & x,const time &b)
{
x<<b.hours<<"hours"<<b.minutes<<"minutes";
return x;
}
int main()
{
time a;
time b(5,40);
time c(2,55);
cout<<"a,b,and c:\n";
cout<<a<<";"<<b<<":"<<c<<endl;
a=b+c;
cout<<"b+c:"<<a<<endl;
a=b*2.75;
cout<<"b*2.75:"<<a<<endl;
cout<<"10*b:"<<10*b<<endl;
return 0;
}