我想写一个简单的 ostream
,它包装一个参数 ostream
并在将它传递到参数流之前以某种方式更改流。转换很简单,例如更改字母或删除单词
从 ostream
继承的简单类会是什么样子?我应该覆盖哪些方法?
最佳答案
std::ostream
不是实现过滤的最佳位置。它没有适当的虚函数来让您执行此操作。
您可能想要编写一个派生自 std::streambuf
的类,其中包含一个包装的 std::ostream
(或一个包装的 std::streambuf
),然后使用此 std::streambuf
创建一个 std::ostream
。
std::streambuf
有一个虚函数 overflow
,您可以覆盖它并在将字节传递给包装的输出类之前使用它来更改字节。
关于c++ - 编写一个 ostream 过滤器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2707740/