写一个ostream过滤器?

sho*_*osh 5 c++ iostream

我想编写一个简单的程序ostream,它包装一个参数ostream并在将其传递到参数流之前以某种方式更改流。转换很简单,例如更改字母或删除单词

一个简单的继承类会是什么样子ostream?我应该重写哪些方法?

CB *_*ley 3

std::ostream不是实施过滤的最佳位置。它没有适当的虚拟函数来让您执行此操作。

您可能想要编写一个派生类,其中std::streambuf包含一个wrapped std::ostream(或一个wrapped std::streambuf),然后std::ostream使用this创建一个std::streambuf

std::streambuf有一个虚拟函数overflow,您可以在将字节传递给包装的输出类之前覆盖并使用它来更改字节。