没有找到接受“const char [2]”类型的右操作数的运算符(或没有可接受的转换)

#include
using namespace std;
class Time
{
private:
int hour;
int minute;
int second;
public:
Time(int h=0,int m=0, int s=0):hour(h),minute(m),second(s){}
Time operator+(Time x)
{
Time z;
z.hour=hour+x.hour;
z.minute=minute+x.minute;
z.second=second+x.second;
return z;
}
friend istream &operator>>(istream &in, Time &z);
friend ostream &operator<<(ostream &out, Time &z);
};
istream &operator>>(istream &in, Time &z)
{
in>>z.hour>>":">>z.minute>>":">>z.second;
if(!in)
z=Time(); //如果失败,默认初始化
return in;
}
ostream &operator<<(ostream &out, Time &z)
{
out< return out;
}
int main()
{
Time time1,time2,time3;
cin>>time1>>time2;
time3=time1+time2;
cout<<time3<<endl;
system("PAUSE");
return 0;

}
错误 1 error C2679: 二进制“>>”: 没有找到接受“const char [2]”类型的右操作数的运算符(或没有可接受的转换) e:\project\3-33\3-33\main.cpp 24

2个回答

sinat_26806435
sinat_26806435 谢谢你~_~
4 年多之前 回复

最简单的修改方法是借用string,因为它实现了输入输出流重载。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问