c++ - 什么时候删除流对象?

标签 c++ c++11 stream c++14

Here's the text from the book that I referred to

根据我在一本书中读到的内容(我附上了上面书中的文字图片),当流对象超出范围时,它与程序/文件或其他任何东西的连接关闭但它仍然存在在与其关联的缓冲区的内存中。 那么它什么时候从内存中删除呢?

感谢任何帮助!

谢谢!

最佳答案

你教科书的措辞很有误导性。

当一个对象超出范围时,它就会被销毁。当 stream 被销毁时,它的连接将被关闭,就好像您手动调用了 close() 函数一样。然后,释放与流关联的所有内存。

作者强调相反的情况不成立,即如果您调用流的close() 方法,您并没有破坏它,您只是关闭了它与它的联系。

关于c++ - 什么时候删除流对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33656683/

相关文章:

c++ - 为什么连接的信号有参数但插槽没有参数?

c++ - 通过左移,可以将数字设置为零

C++11 async 只使用一个核心

java - 为什么子流程的输出顺序错误?

c# - StreamReader.EndOfStream 缺少最后一行?

python - 在 C++ 中嵌入 Python 时我要链接到什么

c++ - 带有模板化参数函数的模板化成员变量上的错误 C2244,仅发生在 Visual Studio 上

c++ - try catch finally construct - 它是在 C++11 中吗?

C++ 什么时候标准库容器中的 typedef 不是您所期望的?

ffmpeg - 通过 ffmpeg 将声音与音乐同步。现场卡拉 OK FMS