3

我想问一下cin的返回值是什么?我知道它是 istream 对象,当它在表达式中使用时,if(!cin)实际上调用了某个函数,我想知道它实际上是什么函数。cin.fail() 或 cin.good() 或.. 是if(!cin) same as if(cin.fail())?

4

1 回答 1

1

是的。

cin重载强制转换运算符,它们返回标志状态fail()

一个可能的实现:

operator void*() const {
    return !fail();
}

explicit operator bool(){
   return !fail();
}

bool operator!() const {
   return fail();
}

看看这里这里

于 2013-10-15T15:31:11.920 回答