std::ostream没有成员函数close()。我不应该允许关闭什么类型的流?
例如,也许我想关闭std::cout以防止进一步写入。
std::cout.close(); // \xe2\x80\x98std::ostream\xe2\x80\x99 has no member named \xe2\x80\x98close\xe2\x80\x99\nRun Code Online (Sandbox Code Playgroud)\n\n如果我使用 C 库,我可以stdout这样结束:
fclose(stdout); // no problem\nRun Code Online (Sandbox Code Playgroud)\n\nclose()那么排除该成员背后的想法是什么std::ostream?
有关的:
\n\n\n拥有close()作为 的成员的功能是没有意义的std::ostream。第一个例子是std::ostringstream继承自std::ostream. 关闭字符串有意义吗?的唯一成员std::ostream是输入/输出的全局对象。
文件流有一个close()功能,因为能够将资源释放到环境中非常重要。但是,由于有其他继承自该基类的类不需要此函数,因此将其作为其中的一部分是没有意义的std::ostream,这就是它仅在文件流中使用的原因。
| 归档时间: |
|
| 查看次数: |
10247 次 |
| 最近记录: |