相关疑难解决方法(0)

一个自定义的ostream

我需要一些指导或指导,了解如何实现自定义ostream.我的要求是:

  1. 一个带有'<<'运算符的类,用于多种数据类型.
  2. 目的是将输出发送到数据库.每条"线"都应该单独记录.
  3. 每个记录最重要的字段是文本(或blob),但其他一些字段,如时间等,大部分都可以自动推断出来
  4. 缓冲很重要,因为我不想为每条记录访问数据库.

首先,它是否值得从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++

21
推荐指数
2
解决办法
1万
查看次数

标签 统计

c++ ×1