Lektion 74:Die Klasse StackAsLinkedListTrägt man den Code aus der vorhergehenden Lektion zusammen, dann ergibt sich folgende Klasse:
Eigentlich sieht der Code recht gut aus. Doch Ihr Compiler wird Sie mit vielen Fehlermeldungen überraschen, wenn Sie ihn compilieren wollen. Das hat zwei Gründe: 1. Die Attribute in der Klasse Element sind private. Deshalb können Methoden der Klasse StackAsLinkedList nicht darauf zugreifen. Das soll für den Moment dadurch behoben werden, daß das private in der Klasse Element durch public ersetzt wird. Das ist im Moment recht unschön, doch in Kürze wird dieses Manko wieder ausgeglichen werden. 2. Ausdrücke wie
funktionieren nicht. Das liegt an den Prioritäten der Operatoren '.' und '*'. Dies ist ein weiterer Fallstrick in den Operatoren-Prioritäten. Der Compiler hält nämlich den Punkt für wichtiger. Für ihn ist
das gleiche wie
Damit der Compiler weiß, was eigentlich gemeint war, müssen also Klammern gesetzt werden.
Die mit diesen Änderungen versehene Klasse sieht so aus:
Übung: Vervollständigen Sie die Klasse StackAsLinkedList so, daß sie die gleiche Schnittstelle hat, wie die Klasse StackAsVector. Wegen der umständlichen Schreibweise
gibt es einen eigenen Operator, der nur diese Schreibweise vereinfacht.
ist für Zeiger als a definiert als
Verwenden Sie überall, wo nötig den operator->, und verbessern Sie die Klasse StackAsLinkedList entsprechend. Einsendungen:LösungsvorschlagDa fehlt noch was Falls Ihnen Fehler im Text auffallen oder Sie Verbesserungsvorschläge haben, dann schicken Sie mir bitte eine Mail. Ich werde mich dann sofort darum kümmern. [aktuelle Version] [inhalt] [index] [Fehlerkorrektur, Verbesserungsvorschlag] © Volkard Henkel <volkard@normannia.de>, last update: 09/06/00 |