C++ Core Guidelines: const schützt Daten und Schnittstellen

Die C++ Core Guidelines fassen fünf Regeln für Konstanten und unveränderliche Objekte zusammen. Der am 27. August 2018 veröffentlichte Themenblock begründet, warum `const` nicht nur versehentliche Änderungen verhindert, sondern auch die Absicht einer Schnittstelle sichtbar macht.

Die Regeln Con.1 bis Con.5 empfehlen, Objekte grundsätzlich unveränderlich anzulegen, Memberfunktionen als `const` zu deklarieren und Zeiger sowie Referenzen auf konstante Daten zu übergeben. Für Werte, die bereits zur Übersetzungszeit berechnet werden können, ist `constexpr` vorgesehen.

Konstante Objekte und Methoden

Eine als `const` deklarierte Variable kann nach ihrer Initialisierung nicht versehentlich überschrieben werden. Bei einer Memberfunktion beschreibt `const`, dass der Aufruf den beobachtbaren Zustand des Objekts nicht verändert. Das verbessert die Lesbarkeit und gibt dem Compiler zusätzliche Informationen über den erlaubten Zugriff.

Die Regel Con.3 übergibt Pointer und Referenzen standardmäßig als Verweise auf konstante Daten, wenn die aufgerufene Funktion nichts verändern muss. Dadurch wird die Absicht im Typ ausgedrückt. In großen Engine-, Editor- und Werkzeugcodebasen erleichtert das die Prüfung von Besitz, Zuständen und Seiteneffekten.

Für `constexpr` nennen die Guidelines Werte, die zur Compile-Zeit berechnet werden können. `const` und `constexpr` ersetzen dabei keine Architekturregeln, bilden aber einen klaren Vertrag zwischen Implementierung und Aufrufer. Die Folge setzt die frühere Betrachtung der C++ Core Guidelines zu Fehlerpfaden fort.

Weitere News

Weitere News

Kommentieren Sie den Artikel

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein