红线标在了29行return t1 * t2;的*这里
错误信息: C2678 二进制“*”: 没有找到接受“const Time”类型的左操作数的运算符(或没有可接受的转换)
倒数第二行return t1 * t2; 我的想法是调用 t1.operator*(t2)
我是看教科书上的实例,但是我写出来就不对,但是将27行参数列表中const删去便可以成功,这是为什么?
class Time
{
private:
int hour;
int min;
int sec;
public:
Time();
Time(int h, int m, int s)
{
hour = h;
min = m;
sec = s;
}
Time operator*(double t)
{
Time sum;
int tolsec = sec + t.sec;
int tolmin = tolsec / 60 + min + t.min;
sum.hour = tolmin / 60 + hour + t.hour;
sum.min = tolmin % 60;
sum.sec = tolsec % 60;
return sum;
}
}
Time operator*(double t2,const Time& t1)
{
return t1 * t2;
}