0

我在重载 >> 运算符时遇到了这个错误,我不知道为什么。

istream& operator>>(istream& stream, unsigned int in)
{
    stream >> in;
    //manyoperators
    if(in>10)
       in = -1;
    return stream;
}

部分代码有错误:

unsigned int tmm;
    cin >> tmm;

为什么?我没有其他的 >> 重载。它可能是什么?

4

2 回答 2

2

您可以仅为自定义类而不是内置数据类型重载函数(在您的情况下>>为 operator )。
C++ 标准库本身为内置数据类型提供重载。

于 2012-12-08T13:47:21.323 回答
0

std::istreamoperator>>(unsigned int&)成为会员。编译器无法选择是调用成员函数(定义在 中<iostream>)还是您编写的自由函数。

于 2012-12-08T14:06:12.777 回答