Friedrich-Alexander-Universität UnivisSuche FAU-Logo
Techn. Fakultńt Willkommen am Department Informatik FAU-Logo
Logo I4
Lehrstuhl für Informatik 4
Betriebssysteme
 
  Vorlesung
    - UnivIS-Infos
    - Inhalt
    - Folien
 
  Übungen
    - UnivIS-Infos
    - Inhalt
    - Ergänzendes Material
    - Terminübersicht
    - Aufgaben
       * Umgebung
       * Typische Fehler
       * Aufgabe 1
          Dokumentation
       * Aufgabe 2
          Dokumentation
       * Aufgabe 3
          Dokumentation
       * Aufgabe 4
          Dokumentation
       * Aufgabe 5
          Dokumentation
       * Aufgabe 6
          Dokumentation
       * Aufgabe 7
          Dokumentation
 
  Evaluation
Department Informatik  >  Informatik 4  >  Lehre  >  WS 2009/10  >  Betriebssysteme  >  ├ťbungen  >  Aufgaben  >  Aufgabe 5

Stringbuffer Klassenreferenz

Die Klasse Stringbuffer dient dazu, einzelne Zeichen zu l├Ąngeren Texten zusammenzustellen, die dann an einem St├╝ck verarbeitet werden k├Ânnen. Mehr ...

#include <strbuf.h>

Klassendiagramm f├╝r Stringbuffer:

Aufstellung aller Elemente

Gesch├╝tzte Methoden

 Stringbuffer ()
 Konstruktor; Markiert Puffer als leer.
virtual ~Stringbuffer ()
void put (char c)
 F├╝gt das Zeichen c in den Puffer ein.
virtual void flush ()=0
 Methode zur Ausgabe des Pufferinhalts.

Gesch├╝tzte Attribute

char buffer [80]
 Zeichenpuffer.
int pos
 Aktuelle Position im Puffer.


Ausf├╝hrliche Beschreibung

Die Klasse Stringbuffer dient dazu, einzelne Zeichen zu l├Ąngeren Texten zusammenzustellen, die dann an einem St├╝ck verarbeitet werden k├Ânnen.

Damit ein m├Âglichst vielseitiger Einsatz m├Âglich ist, trifft die Klasse keine Annahme dar├╝ber, was "verarbeiten" in diesem Zusammenhang bedeutet. Nur der Zeitpunkt der Verarbeitung steht bereits fest, n├Ąmlich immer, wenn dies explizit gew├╝nscht wird oder der Text so lang geworden ist, dass keine weiteren Zeichen hinzugef├╝gt werden k├Ânnen. Dies geschieht durch Aufruf der Methode flush(). Da Stringbuffer ger├Ąteunabh├Ąngig sein soll, ist flush() eine virtuelle Methode, die von den abgeleiteten Klassen definiert werden muss.

Hinweise zur Implementierung
Zur Pufferung der Zeichen eignet sich ein fest dimensioniertes Feld, auf das die abgeleiteten Klassen zugreifen k├Ânnen m├╝ssen. Auch die Anzahl der Zeichen oder das zuletzt beschriebene Feldelement sollte in den spezialisierten flush() Methoden erkennbar sein.
Anmerkung
Anlass f├╝r die Einf├╝hrung dieser Klasse war die Erkenntnis, dass Ausgaben eines Programmes sehr h├Ąufig aus vielen kleinen Komponenten bestehen, zum Beispiel, wenn die Namen und Inhalte von Variablen dargestellt werden sollen. Andererseits k├Ânnen wenige l├Ąngere Texte meist viel effizienter ausgegeben werden als viele kurze. Daher erscheint es sinnvoll, vor der Ausgabe die einzelnen Komponenten mit Hilfe eines Stringbuffer Objekts zusammenzuf├╝gen und erst sp├Ąter, z. B. bei einem Zeilenumbruch, gesammelt auszugeben.

Beschreibung der Konstruktoren und Destruktoren

virtual Stringbuffer::~Stringbuffer (  )  [inline, protected, virtual]

~STRINGBUFFER: Im Destruktor gibt es nichts mehr zu tun.


Dokumentation der Elementfunktionen

void Stringbuffer::put ( char  c  )  [protected]

F├╝gt das Zeichen c in den Puffer ein.

Wenn der Puffer daraufhin voll ist, wird er durch Aufruf der Methode flush() geleert.

Parameter:
c Einzuf├╝gendes Zeichen

virtual void Stringbuffer::flush (  )  [protected, pure virtual]

Methode zur Ausgabe des Pufferinhalts.

Diese Methode muss in den abgeleiteten Klassen definiert werden, denn nur diese wissen, wie die Zeichen ausgegeben werden k├Ânnen. flush() muss den Positionszeiger pos zur├╝cksetzen.

Implementiert in CGA_Stream und O_Stream.


Die Dokumentation f├╝r diese Klasse wurde erzeugt aufgrund der Dateien:
  Impressum   Datenschutz Stand: 2010-07-19 12:34   BO, DL