C++-Programmierung/ Im Zusammenhang mit Klassen/ mutable
Bereits in einem vorherigen Kapitel haben Sie konstante Funktionen in Klassen kennen gelernt. Diese können keine Membervariablen der Klasse ändern. Keine? Doch: Membervariablen, die mutable
sind, lassen sich selbst durch konstante Funktionen verändern:
Sinn und Zweck
BearbeitenSie werden sich fragen, was mutable
soll, da es immerhin den Sinn einer konstanten Memberfunktion, d.h. die Garantie, nichts an der Klasse zu verändern, untergräbt. Das stimmt auch.
Es gibt aber seltene Fälle, bei denen der Einsatz von mutable
sinnvoll ist. Stellen Sie sich beispielsweise vor, Sie möchten für Debuggingzwecke die Anzahl der Aufrufe einer konstanten Memberfunktion zählen. Dann können Sie mutable
einsetzen und die Funktion gilt weiterhin als konstant.
Generell kann man sagen, dass mutable
nicht eingesetzt werden sollte, wenn die Veränderung dieser Variable das Erscheinungsbild/Verhalten des Objekts von Außen verändert.