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