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