Well, the job is nearly done. The class OG_constream doesn't extend its base class with new functionality. It only creates the buffer in the constructor and deletes the buffer in the destructor.
OG_constream::OG_constream() : ostream(new OG_constreambuf())
{
}
OG_constream::OG_constream(int i) : ostream(new OG_constreambuf(i))
{
}
OG_constream::~OG_constream()
{
OG_constreambuf* pOG_constreambuf = (OG_constreambuf*) rdbuf();
if (pOG_constreambuf)
delete pOG_constreambuf;
}