Einen wunderschönen guten Tag,
mit Klassen, deren Aufbau und Verwendung hast du dich aber schon beschäftigt. Wenn nicht, empfehle ich dir dies dringend nachzuholen. Auch solltest du dich mit den this-Pointer auseinandersetzen.
Natürlich kennt die Methode einfuegen() der Klasse listenelement nicht die Variable listenEnde. Diese steht somit dort auch nicht zur Verfügung (demnach der Fehler). Allerdings wird die Methode einfuegen() über das Listenelement listenEnde aufgerufen. Das Programm befindet sich somit während des Einfügens neuer Listenelemente im Listenelement listenEnde. Und damit man auf die Instanz (hier: Listenelement), in der sich das Programm befindet, selbst zugreifen kann, exisitert der this-Pointer. Dieser wird auch genauso geschrieben:
Du kannst also mit *this auf die aktuelle Instanz zugreifen. Du kannst also die Zuweisung des Listenendes folgendermaßen vornehmen:
Das ist vielleicht etwas heikel, gerade die Zuweisung der Instanz zu verändern, mit welcher man gerade arbeitet, aber ich sehe hier keine andere Möglichkeit.
Du erzeugst mit deinen Vorschlag zunächst ein neues Listenelement. Danach setzt du sofort das Listenende auf dieses neue Element (was noch nicht funktioniert). Und danach willst die Daten in das neue Element speichern. Doch wohin werden die Daten wirklich gespeichert? Sicherlich nicht dort, wo es hinsoll. Auch hier der Hinweis von ganz oben: Beschäftige dich mit der Funktionsweise von Klassen.
Verwende bitte wieder Code-Tags. Da lässt sich der Code besser lesen.
Gruss
Mizi
mit Klassen, deren Aufbau und Verwendung hast du dich aber schon beschäftigt. Wenn nicht, empfehle ich dir dies dringend nachzuholen. Auch solltest du dich mit den this-Pointer auseinandersetzen.
Natürlich kennt die Methode einfuegen() der Klasse listenelement nicht die Variable listenEnde. Diese steht somit dort auch nicht zur Verfügung (demnach der Fehler). Allerdings wird die Methode einfuegen() über das Listenelement listenEnde aufgerufen. Das Programm befindet sich somit während des Einfügens neuer Listenelemente im Listenelement listenEnde. Und damit man auf die Instanz (hier: Listenelement), in der sich das Programm befindet, selbst zugreifen kann, exisitert der this-Pointer. Dieser wird auch genauso geschrieben:
C++:
*this
Du kannst also mit *this auf die aktuelle Instanz zugreifen. Du kannst also die Zuweisung des Listenendes folgendermaßen vornehmen:
C++:
*this = next;
Das ist vielleicht etwas heikel, gerade die Zuweisung der Instanz zu verändern, mit welcher man gerade arbeitet, aber ich sehe hier keine andere Möglichkeit.
Du erzeugst mit deinen Vorschlag zunächst ein neues Listenelement. Danach setzt du sofort das Listenende auf dieses neue Element (was noch nicht funktioniert). Und danach willst die Daten in das neue Element speichern. Doch wohin werden die Daten wirklich gespeichert? Sicherlich nicht dort, wo es hinsoll. Auch hier der Hinweis von ganz oben: Beschäftige dich mit der Funktionsweise von Klassen.
Verwende bitte wieder Code-Tags. Da lässt sich der Code besser lesen.
Gruss
Mizi