gpt4 book ai didi

c++ - 为什么 `is_open()` 是非常量?

转载 作者:IT老高 更新时间:2023-10-28 13:00:24 32 4
gpt4 key购买 nike

我有一个类似于下面的函数,它是 const 并且需要在继续之前检查文件流是否打开:

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 ( );

(即非常量)

对我来说,像这样的函数(显然是纯访问器)应该是非常量的,这似乎有点奇怪。这背后有什么合理的逻辑吗?

最佳答案

实际上是 C++11 中的 const。 C++03版本是个不幸的错误。

关于c++ - 为什么 `is_open()` 是非常量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11466630/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com