Die const-Spezifikation erlaubt die Formulierung von Einschränkungen, deren Einhaltung vom Compiler überprüft wird.
Für Variablen:
char *p; const char *p; // konstante Daten char *const p; // konstanter Zeiger const char *const p; // konstanter Zeiger // + konstante Daten
class string { char *data; public: operator const char*() {return data;} };Verhindert, daß über das Funktionsergebnis Änderungen an privaten Elemente vorgenommen werden.
dürfen auch auf konstante Objekte angewandt werden, da sie die Datenelemente nicht verändern dürfen.
Die const-Markierung kann auch zum Überladen benutzt werden:
class string { char *data; public: char & operator[](int i) { return data[i]; } // die Version fuer const Objekte: const char & operator[](int i) const { return data[i]; } }; ... const str cstring = "Hello"; string str = "World"; str[0] = 'x'; // OK cstr[0] = 'x'; // Fehler!