【发布时间】:2010-12-19 08:13:25
【问题描述】:
我想定义从 std::ostream 公开继承的 MyOStream。假设我想实现自己的 ofstream。
如何做到这一点? 我会很高兴获得任何帮助、编码示例或任何相关链接...
谢谢!
【问题讨论】:
-
你到底想完成什么?
标签: c++ inheritance ostream
我想定义从 std::ostream 公开继承的 MyOStream。假设我想实现自己的 ofstream。
如何做到这一点? 我会很高兴获得任何帮助、编码示例或任何相关链接...
谢谢!
【问题讨论】:
标签: c++ inheritance ostream
我不完全明白你在这里想要完成什么。用户代码不应从流本身继承,因为流旨在提供通用的语言环境特定转换/“字符串化”设施。如果您尝试使用可以写入新缓冲区位置(即 gzip 流)的ostream,那么通常应该从basic_streambuf 继承,这允许您使用现有的 iostream 转换工具,但允许你重定向他们的输入/输出。
如果您想了解 iostream 本身如何运作的细节,我听说过的关于该主题的最佳书籍是 Angelika Langer 和 Klaus Kreft 的 Standard C++ IOStreams and Locales。我自己不能为这本书担保,因为我还没有拿到我的副本(它在我的列表中),但你可以在 StackOverflow 上找到一些关于它的建议。
您可能还想看看boost::iostreams,它为任何希望自定义 iostream 系统行为的人提供了一些帮助。
【讨论】: