3

我想定义从 std::ostream 公开继承的 MyOStream。假设我想实现自己的 ofstream。

如何才能做到这一点?我会很高兴获得任何帮助、编码示例或任何相关链接......

谢谢!

4

1 回答 1

3

我不明白你在这里想要完成什么。用户代码不应从流本身继承,因为流旨在提供通用的语言环境特定转换/“字符串化”设施。如果您尝试使用ostream可以写入新缓冲区位置(即 gzip 流)的方法,那么通常应该继承自basic_streambuf,这允许您使用现有的 iostream 转换工具,但允许您重定向它们的输入/输出。

如果你想了解 iostream 本身如何运作的细节,我听过的关于这个主题的最好的书是Angelika Langer 和 Klaus Kreft 的Standard C++ IOStreams and Locales。我自己不能为这本书做担保,因为我还没有拿到我的副本(它我的列表中),但你可以在 StackOverflow 上找到一些关于它的建议。

您可能还想看一下boost::iostreams,它为任何希望自定义 iostream 系统行为的人提供了一些帮助程序。

于 2010-12-19T09:52:09.773 回答