Как if ('fstream object') возвращает значение true или false в зависимости от того, был ли открыт файл?

Мне любопытно, как fstreamclassможет возвращать значение trueили false, просто помещая имя объекта внутри условного оператора. Например...

std::fstream fileStream;
fileStream.open("somefile.ext");

if (!fileStream)  // How does this work?
  std::cout << "File could not be opened...\n";

Я спрашиваю об этом, потому что хочу, чтобы мой собственный класс возвращал значение, если я использую его аналогичным образом.

5
задан 11 April 2012 в 00:14
поделиться