我想在C ++中定义一种新类型的filestream
。我应该继承什么?
答案 0 :(得分:4)
如果您从头开始编写I / O部件,请继承basic_filebuf
或basic_streambuf
。您可能还需要一个派生自basic_[i/o]fstream
的类,但为方便起见,这是严格可选的。如果不需要模板,请删除basic_
并继承类,而不是模板。
*stream
类都通过多态指针调度I / O,您可以使用rdbuf()
方法获取和设置该多态指针。因此,除非/直到实现便捷类,否则可以通过实例化std::iostream
并使用指针调用rdbuf
进行测试。
拥有标准版的副本非常有用,可以完成派生类的要求。您的主要功能将在虚拟函数overflow
和underflow
中。