next up previous contents index
Next: Statische Klassenelemente Up: Klassen Previous: Der this-Zeiger

Konstante Elementfunktionen

   

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.


next up previous contents index
Next: Statische Klassenelemente Up: Klassen Previous: Der this-Zeiger

Peter Pfahler, 1997