Наследовать от basic_filebuf
или basic_streambuf
, если вы пишете части ввода-вывода с нуля.Вам также может потребоваться класс, производный от basic_[i/o]fstream
, но это для удобства строго необязательно.Если шаблонирование не требуется, отбросьте basic_
и наследуйте от классов, а не от шаблонов.
Классы *stream
всех диспетчеризуют ввод / вывод через полиморфный указатель, который вы можете получить и установить с помощью rdbuf()
метод.Поэтому, если / пока вы не реализуете вспомогательный класс, вы можете выполнить тестирование путем создания экземпляра std::iostream
и вызова rdbuf
с указателем.
Очень полезно иметь под рукой копию стандарта для работы стребования к производному классу.Ваша основная функциональность будет в виртуальных функциях overflow
и underflow
.