Die innere Klasse OG_constreambuf wird von streambuf abgeleitet.
class OG_constreambuf : public std::streambuf{public:  OG_constreambuf(int iBuffersize=100);  virtual ~OG_constreambuf();
private:  void WriteCharToConsole(int);  void WriteToConsole();  void DeleteConsole();  void CreateConsole();
  HANDLE hConsoleOut;  char* pReserve;protected:  int_type overflow(int_type);  int_type sync();};
Die Elemente im public- und im protected-Bereich stellen Überschreibungen der Basisklasse dar, die Elemente im private-Bereich sind Erweiterungen. Die Klasse benutzt einen Ausgabe-Puffer, auf den pReserve zeigt und der in dem Konstruktor reserviert wird. Der Konstruktor erlaubt die Angabe der Puffergrösse.
OG_constreambuf::OG_constreambuf(int iBuffersize){  if (iBuffersize)  {    pReserve = new char[iBuffersize];    setp(pReserve, pReserve + iBuffersize);  }  else  {    pReserve = NULL;    setp(0, 0);  }
  setg(0, 0, 0);
  CreateConsole();}
Der Konstruktor ruft dann noch die Funktionen setp, setg und CreateConsole auf. Die Funktionen setp und setg sind von der Basisklasse geerbt und dienen dazu den Ein- bzw. Ausgabepuffer für die Benutzung durch die Stream-Klasse bekannt zu machen. setp setzt den Beginn und das Ende des Ausgabe-Puffers, setg ist das Pendant für den Eingabe-Puffer (hier 0, da kein Eingabe-Puffer vorhanden ist). Die Funktion CreateConsole öffnet ein Konsolen-Fenster. Falls schon ein Konsolen-Fenster existiert, wird es zuerst zerstört. Der HANDLE hConsoleOut wird für die Ausgabe benötigt.
void OG_constreambuf::CreateConsole(){  if (!AllocConsole())  {    FreeConsole();    AllocConsole();  }  hConsoleOut = GetStdHandle(STD_OUTPUT_HANDLE);}