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

What to inherit from when I want to create a new fstream?

本文关键字:什么 继承 一个 创建 我想要      更新时间:2023-10-16

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

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

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

手边有一份标准的副本是非常有用的,可以处理派生类的需求。您的主要功能将在虚拟函数overflowunderflow中。