C++ Einführung
C++ Variablen im Speicher, Zeiger
C++ Texte etc.
C++ Dateien, Formatierte Ausgabe, ...
C++ OOP
Hilfe / Anhang
Downloads / Links
Partner
Fehler melden / Kontakt
Impressum
|
| Seite: [1] 2 3 4 - Drucken |
"mutable"
Wir haben ja bereits "const" kennengelernt: Als "const" definierte Methoden dürfen keine Membervariablen ändern, oder Methoden aufrufen, die dies tun. (Da *"this" als "const" definiert ist)
Jetzt kommt aber eine Neuerung: "mutable": Als "mutable" (z.B.: "mutable int zaehler") gekennzeichnete Eigenschaften kann man nämlich auch aus "konstanten" Methoden aus ändern.
Das mag jetzt total sinnfrei erscheinen, aber kann ganz hilfreich sein:
SO kann eine Methode zum Beispiel einen bereits vorher bestimmten Wert zurückgeben, statt eine CPU-Intensive Berechnung ewig surchzuführen. Dazu wird ein als "mutable" deklariertes Flag genutzt:
Der eigentliche, größere Nutzen ergibt sich, wenn man vor einer langen Berechnung überprüft, ob sich eine Eigenschaft geändert hat. Falls dem so ist, wird der Wert neu berechnet, in einer Eigenschaft gespeichert, und die Statusvariable "geaendert" auf "false" gesetzt. "geaendert" und der ausgerechnete Wert müssten dann als "mutable" deklariert werden:

(Noch) sehr theoretisch, oder?
Da "mutable" sehr selten vorkommt, denke ich, wir belassen es hierbei. Bei entsprechender Gelegenheit komme ich im weiteren Verlauf des Kurses noch einmal darauf zurück!
Wie geht's weiter?
Initialisierungslisten: Vereinfachte Konstruktoren
|
| Seite: [1] 2 3 4 - Drucken |
|