48 lines
2.1 KiB
C++
Executable File
48 lines
2.1 KiB
C++
Executable File
/*****************************************************************************
|
|
* *
|
|
* S T R I N G B U F F E R *
|
|
* *
|
|
*---------------------------------------------------------------------------*
|
|
* Beschreibung: Die Klasse StringBuffer stellt einen Puffer fuer die *
|
|
* Sammlung von Zeichen zur Darstellung auf dem Bildschirm *
|
|
* oder anderen Ausgabegeraeten bereit. Die Ausgabe der *
|
|
* Zeichen erfolgt, sobald der Puffer voll ist oder wenn *
|
|
* explizit die Methode flush() aufgerufen wird. *
|
|
* Da StringBuffer geraeteunabhaengig sein soll, ist *
|
|
* flush() eine virtuelle Methode, die von den abgeleiteten *
|
|
* Klassen definiert werden muss. *
|
|
* *
|
|
* Autor: Olaf Spinczyk, TU Dortmund *
|
|
* Aenderungen von Michael Schoettner, HHU, 06.04.20 *
|
|
*****************************************************************************/
|
|
#ifndef __StringBuffer_include__
|
|
#define __StringBuffer_include__
|
|
|
|
class StringBuffer {
|
|
|
|
private:
|
|
StringBuffer(const StringBuffer& copy); // Verhindere Kopieren
|
|
|
|
// Alle Variablen und Methoden dieser Klasse sind "protected",
|
|
// da die abgeleiteten Klassen einen direkten Zugriff auf den
|
|
// Puffer, den Konstruktor, den Destruktor und die Methode put
|
|
// benoetigen. Die Methode flush() muss sowieso neu definiert
|
|
// werden und kann dann auch public werden.
|
|
|
|
protected:
|
|
char buffer[80];
|
|
int pos;
|
|
|
|
// StringBuffer: Im Konstruktor wird der Puffer als leer markiert.
|
|
StringBuffer() : pos(0) {}
|
|
|
|
// NOTE: I changed this
|
|
// Fuegt ein Zeichen in den Puffer ein. Wenn der Puffer
|
|
virtual void put(char c);
|
|
|
|
// Methode zur Ausgabe des Pufferinhalts
|
|
virtual void flush() = 0;
|
|
};
|
|
|
|
#endif
|