Почему `является _открытым ()`не -константным?

У меня есть функция, похожая на приведенную ниже, которая является константой и должна проверять, открыт ли файловый поток перед продолжением:

bool MyClass::checkSomeStuff() const
{
    // Where outputFile_ is a std::ofstream
    if ( ! outputFile_.is_open() )
    {
        throw std::runtime_error( "Output file not open." );
    }

    //... do more stuff

Однако, похоже, я не могу этого сделать, так как is_open()объявлен как:

bool is_open ( );

(то есть не -const)

Мне кажется немного странным, что такая функция, как эта -, которая явно является чистым методом доступа -, не должна быть -константной. Есть ли за этим логика, которая имеет смысл?

24
задан Component 10 13 July 2012 в 08:14
поделиться