以下代码没有错,但是若把t=t1-Time(100)换成t=t1-100则有如下错误:
binary '-' : no operator defined which takes a right-hand operand of type 'const int' (or there is no acceptable conversion)为什么不能进行隐式转换呢???#include <iostream.h>class Time
{
public:
int m_iHour;
public:
Time()
{
m_iHour=24;
} Time(int h):m_iHour(h)
{
}
friend Time operator + (Time& T1,Time& T2);
friend Time operator - (Time& T1,Time& T2);
};
Time operator + (Time& T1,Time& T2)
{
Time t;
t.m_iHour=T1.m_iHour+T2.m_iHour;
return t;
}Time operator - (Time& T1,Time& T2)
{
Time t;
t.m_iHour=T1.m_iHour-T2.m_iHour;
return t;
}
void main()
{
Time t1;
Time t;
t=t1-100;
cout<<"Hour:"<<t.m_iHour<<endl;
}
binary '-' : no operator defined which takes a right-hand operand of type 'const int' (or there is no acceptable conversion)为什么不能进行隐式转换呢???#include <iostream.h>class Time
{
public:
int m_iHour;
public:
Time()
{
m_iHour=24;
} Time(int h):m_iHour(h)
{
}
friend Time operator + (Time& T1,Time& T2);
friend Time operator - (Time& T1,Time& T2);
};
Time operator + (Time& T1,Time& T2)
{
Time t;
t.m_iHour=T1.m_iHour+T2.m_iHour;
return t;
}Time operator - (Time& T1,Time& T2)
{
Time t;
t.m_iHour=T1.m_iHour-T2.m_iHour;
return t;
}
void main()
{
Time t1;
Time t;
t=t1-100;
cout<<"Hour:"<<t.m_iHour<<endl;
}
或作成成员
Time xxx::operator - (int nT);