我在重载>>时遇到了此错误操作员,我不明白为什么。
istream& operator>>(istream& stream, unsigned int in)
{
stream >> in;
//manyoperators
if(in>10)
in = -1;
return stream;
}
部分错误代码:
unsigned int tmm;
cin >> tmm;
为什么呢?我没有其他超载的>>。 它可能是什么?
答案 0 :(得分:2)
您可以仅为自定义类而非内置数据类型重载函数(在您的情况下为运算符>>
)。
C ++标准库本身为内置数据类型提供了重载。
答案 1 :(得分:0)
std::istream
有operator>>(unsigned int&)
成员。编译器无法选择是否调用成员函数(在<iostream>
中定义)或您编写的自由函数。