Beispielprogramm: OBJVERB.CPP
Unser nächstes Programm in diesem Kapitel heißt OBJVERB.CPP und ist ein komplettes Beispiel einer verbundenen Liste in objektorientierter Schreibweise.
Dieses Beispielprogramm ist dem letzten sehr ähnlich. In der Tat ist es mit diesem identisch, bis wir zur Funktion main() kommen. Du erinnerst Dich, wir haben im letzten Programm nur über die beiden Methoden ZeigeAufNaechste() und HoleNaechste Zugriff auf die internen Zeiger der Objekte gehabt. Diese Methoden finden sich in den Zeilen 42 bis 52 des Programmes, dem wir uns jetzt widmen wollen. Wir werden sie verwenden, um unsere Liste zu erstellen und sie dann durchzugehen, um die Liste am Bildschirm auszugeben. Schließlich werden wir die komplette Liste löschen, um den Speicher freizugeben.
In den Zeilen 57 bis 59 definieren wir drei Zeiger. Der Zeiger mit dem Namen Start wird immer auf das erste Element der Liste zeigen, Temp hingegen wird durch die Liste wandern, wenn wir sie erstellen. Den Zeiger mit dem Namen BoxZeiger werden wir zum Erzeugen der Objekte verwenden. Die Schleife in den Zeilen 62 bis 75 erzeugt unsere Liste. Zeile 64 erzeugt dynamisch ein neues Objekt der Klasse Box und in Zeile 65 füttern wir dieses Objekt zur Illustration mit sinnlosen Daten. Ist das Objekt, das wir gerade erzeugt haben, das erste in der Liste, lassen wir den Zeiger Start darauf zeigen. Gibt es allerdings schon Elemente in der Liste, lassen wir das letzte Element (repräsentiert durch den Zeiger Temp) auf das neue Zeigen. In jedem Fall weisen wir dem Zeiger Temp das letzte Element in der Liste zu, damit wir noch weitere anfügen können, sollte das gewünscht werden.
In Zeile 78 lassen wir den Zeiger mit dem Namen Temp auf das erste Element zeigen. Wir verwenden diesen Zeiger, um die gesamte Liste zu durchschreiten, wenn er sich selbst durch die Zuweisung in Zeile 82 vorarbeitet. Wenn Temp den Wert NULL hat, den er vom letzten Element in der Liste erhält, haben wir die komplette Liste abgearbeitet.
Schlussendlich löschen wir die gesamte Liste. Wir beginnen beim ersten Element und löschen bei jedem Schleifendurchlauf in den Zeilen 87 bis 92 ein Element.
Ein Studium des Programmes wird zeigen, daß es tatsächlich eine verbundene Liste mit zehn Elementen erzeugt, wobei jedes Element ein Objekt der Klasse Box ist. Die Länge der Liste ist dadurch eingeschränkt, wie viele Elemente wir am Bildschirm ausgeben wollen, sie könnte aber eine Größe von vielen tausend Elementen erreichen, vorausgesetzt, wir haben genug Speicher, um alle diese zu speichern.
Auch hier überprüfen wir die dynamische Speicherverwaltung nicht, wie es in einem korrekt geschriebenen Programm eigentlich geschehen sollte. Kompiliere das Beispielprogramm und führe es aus.
Copyright © 1997, 1998, 2001-2006 Heinz Tschabitscher - Letzte Änderung 13. Dezember 2005
Heinz Tschabitscher - | Datenschutz | Impressum - Kommentare, Kritik, Anregungen, Erklärungen?