Ein konstantes C++ Objekt darf nicht verändert werden:
const char blank = ' '; ... blank = `\t`; // Fehler!
Genauso dürfen für konstante Klassenobjekte nur Elementfunktionen aufgerufen werden, die das Objekt nicht verändern. Solche Elementfunktionen müssen als const markiert werden:
class date { int day, month, year; public: ... int getday(void) const { return day;} int changeyear(int y) { year = y;} }; ... const date fix = today; cout << fix.getday(); // OK. fix.changeyear(2000); // Fehler!
Compiler:
non-const memberfunction date::changeyear called for const object. Compilation failed.
Experiment:
... int changeyear (int y) const // Luege { year = y; } ...
CC:
error: assignment to const type.
g++:
warning: assignment to read-only member year.