有谁知道为什么 istream 对象可以用作布尔表达式?例如:
ifstream input("tmp");
int iValue;
while (input >> iValue)
//do something;
这里input >> iValue
返回对 ifstream 对象的引用。我想知道为什么这个对象可以用作布尔表达式。
我查看了 ifstream 类,发现这可能是由于以下成员函数:
operator void * ( ) const;
有关此功能的详细信息,请参见此处。
如果是的话,谁能给我解释一下这个功能?该函数的原型不同于通常的运算符重载声明。这个函数的返回类型是什么?
如果不是,那么 ifstream 对象可以用作 bool 表达式的原因是什么?
期待您的帮助!
程