5 Objektorientierte Programmierung - Klassendefinition in C++

1 Implementierung der Universiäts-Klassenhiearchie.



   Sie haben die String Klasse kennengelernt.

   Erweitern Sie die String-Klasse um einen Tokenizer.

   Schreiben Sie Ihre eigene Klasse, zum Beispiel mit dem Namen 'StringCL'.
   Leiten Sie die Klasse vom STL-Typ 'string' ab.

   Deklarieren/definieren Sie eine zusätzliche Elementfunktion, welche 
   einfach das erste Wort zurückgibt und dieses aus dem String löscht.
   Worte werden durch Leerzeichen getrennt.
   Wenn der String leer ist bzw. kein Leerzeichen enthält, sollte die
   Funktion einfach den String löschen und den kompletten vorherigen 
   Inhalt selbst zurückgeben (den Inhalt bekommen Sie mit *this).

   Die Elementfunktion könnte mit "string popToken(void)" deklariert sein.

   Binden Sie die String-Typen ein (siehe Folien, using namespace-Anweisung nicht
   vergessen!)

   Denken Sie daran, dass bei der abgeleiteten Klasse die Elemente der Basis-
   klasse geerbt werden. Das bedeutet, dass diese ohne Objekt angesprochen werden.
   Ist beispielsweise die Funktion b() ein Element der Klasse A, so lautet innerhalb
   der Klasse A der Aufruf dieser Elementfunktion

   b();

   Genauso verhält es sich in der abgeleiteten Klasse C. Wenn Sie C von A so ableiten:

   class C : public A
   {

    // .... zusätzliche Elementfunktionen von Ihnen
   }

   können Sie die Elemente von A einfach in c benutzen, also z.B.

   C::neueFunktion(void) {

	b();
   }


   Genau dies gilt natürlich für die Elemente von 'string', welche Sie in Ihrer neuen
   Klasse ja auch erben wollen. Dazu zählen zum Beispiel die Funktionen find() und substr().

   Die Klasse sollte so verwendet werden:


#include 
#include "StringCL.h"


   main() {

	StringCL satz = "Auf dem Mond fällt der Apfel auch mal weit vom Baum.";

	cout << satz << endl;
	
	string wort;

	do {
		wort = satz.popToken();
		cout << wort << endl;
	} while (wort != stringCL(""))

	return 0;

   }   

(Tippfehler vorbehalten!)

Die Ausgabe dieses Programms sollte dann so aussehen:

Auf dem Mond fällt der Apfel auch mal weit vom Baum.
Auf
dem
Mond
fällt
der
Apfel
auch
mal
weit
vom
Baum.



   Abgabetermin: Montag, 11. Juni, 13.00 Uhr per E-Mail. Bitte geben Sie 
                 je eine .h und .cpp Datei für die StringCL Klasse ab. 
                 Binaries sind überflüssig.