Кто-нибудь знает, почему объект istream может использоваться как выражение bool? Например:
ifstream input("tmp");
int iValue;
while (input >> iValue)
//do something;
Здесь input >> iValue
возвращает ссылку на объект ifstream. Я хочу знать, почему этот объект можно использовать как выражение bool.
Я просматриваю класс ifstream и обнаруживаю, что это может быть вызвано следующей функцией-членом:
operator void * ( ) const;
Подробнее об этой функции см. здесь.
Если да, может ли кто-нибудь объяснить эту функцию мне? Прототип этой функции отличается от обычного объявления о перегрузке оператора. Каков тип возврата этой функции?
Если это не так, то в чем причина того, что объект ifstream может использоваться как выражение bool?
С нетерпением ждем вашей помощи!
чэн