【问题标题】:inherit std::ostream继承 std::ostream
【发布时间】:2010-12-19 08:13:25
【问题描述】:

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

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

谢谢!

【问题讨论】:

  • 你到底想完成什么?

标签: c++ inheritance ostream


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-27
    • 1970-01-01
    相关资源
    最近更新 更多