当我想创建一个新的fstream时要继承什么?

时间:2011-10-23 07:52:27

标签: c++ inheritance filestream

我想在C ++中定义一种新类型的filestream。我应该继承什么?

1 个答案:

答案 0 :(得分:4)

如果您从头开始编写I / O部件,请继承basic_filebufbasic_streambuf。您可能还需要一个派生自basic_[i/o]fstream的类,但为方便起见,这是严格可选的。如果不需要模板,请删除basic_并继承类,而不是模板。

*stream类都通过多态指针调度I / O,您可以使用rdbuf()方法获取和设置该多态指针。因此,除非/直到实现便捷类,否则可以通过实例化std::iostream并使用指针调用rdbuf进行测试。

拥有标准版的副本非常有用,可以完成派生类的要求。您的主要功能将在虚拟函数overflowunderflow中。