gpt4 book ai didi

c++ - ‘std::ostream’ 没有名为 ‘close’ 的成员

转载 作者:行者123 更新时间:2023-11-30 02:38:44 24 4
gpt4 key购买 nike

std::ostream没有成员函数 close()。什么类型的流不应该被允许关闭?

例如,也许我想关闭 std::cout 以防止进一步写入它。

std::cout.close(); // ‘std::ostream’ has no member named ‘close’

如果我使用的是 C 库,我可以关闭 stdout:

fclose(stdout); // no problem

那么从 std::ostream 中删除 close() 成员背后的想法是什么?


相关:

最佳答案

close() 函数作为 std::ostream 的成员是没有意义的。第一个示例是 std::ostringstream 继承自 std::ostream。关闭字符串有意义吗? std::ostream 的唯一成员是输入/输出的全局对象。

文件流有一个close() 函数,因为能够将资源释放到环境中很重要。但是,由于有其他类继承自该基类,不需要此函数,因此将它作为 std::ostream 的一部分是没有意义的,这就是为什么它是仅在文件流中使用。

关于c++ - ‘std::ostream’ 没有名为 ‘close’ 的成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30495820/

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