我需要一些指导或指导,了解如何实现自定义ostream.我的要求是:
首先,它是否值得从ostream中获得?从ostream得到什么?如果我的类只实现了很少的operator<<方法(包括一些自定义数据类型),该怎么办 我从ostream获得哪些功能?
假设我想要的是一个源自ostream的类,我需要一些指导来理解ostream和streambuf类之间的关系.我需要实施哪一个?看一些样本,似乎我根本不需要从ostream派生,只需给ostream构造函数一个自定义的streambuf.真的吗?这是规范的方法吗?
我需要在自定义streambuf中实现哪些虚拟功能?我已经看到了一些示例(包括这个站点:这里和这里,还有更多),一些覆盖了该sync方法,而另一些覆盖了该overflow方法.我应该覆盖哪一个?另外,查看stringbuf和filebuf源(Visual Studio或GCC),这两个缓冲类都实现了streambuf的许多方法.
如果需要从streambuf派生的自定义类,是否可以从stringbuf(或任何其他类)而不是直接从streambuf获得任何好处?
至于"线".至少当我使用'endl'操纵器的类的用户是一个新行(即数据库中的记录)时,我想.也许 - 取决于努力 - 每个'\n'字符也应被视为新记录.谁为我的自定义ostream和/或streambuf获得通知?
c++ ×1