
Die Formulierung ist nicht ideal, doch die Aussage im Wiki ist korrekt. Der Begriff "Wert" könnte in diesem Fall etwas zu allgemein sein.Xeon hat geschrieben: ↑Mo Jun 07, 2021 2:28 pmKann das sein dass dieses Wort "nicht" welches ich unterstrichen habe nicht dazu gehört?Konstant, aber doch veränderlich
Nicht alle Datensätze müssen in einem konstanten Objekt unveränderlich sein. Eine Liste kann zum Beispiel konstant sein, wenn kein Element hinzugefügt oder gelöscht wird. Der Zeiger auf ein aktuelles Element darf sich unter Umständen aber doch verändern. So kann man die Variablen, die den Wert der Instanz nicht verändern als mutable kennzeichnen. Diese Mutable-Variablen dürfen dann auch von Funktionen geändert werden, die als const gekennzeichnet sind:
Das im Wiki genannte Beispiel finde ich ziemlich gut:
Der von außen sichtbare Zustand der konstanten Liste (das heißt die in der Liste gespeicherten Werte) darf nicht verändert werden. Was nun intern passiert (z.B. wenn man über die Liste iteriert, ohne sie zu verändern), sollte den Nutzer dieser Klasse nicht interessieren müssen. Der eigentliche "Wert" der Liste ändert sich für den Nutzer dadurch ja nicht.Wiki hat geschrieben:Eine Liste kann zum Beispiel konstant sein, wenn kein Element hinzugefügt oder gelöscht wird. Der Zeiger auf ein aktuelles Element darf sich unter Umständen aber doch verändern.
Versuchen wir mal den Satz anders zu formulieren:
Findest du das besser?So kann man die Variablen, die den von außen sichtbaren Zustand der Instanz nicht verändern, als mutable kennzeichnen.