Konstante Memberfunktionen
Die Deklaration einer Memberfunktion mit dem const-Schlüsselwort gibt an, dass die Funktion eine "schreibgeschützte" Funktion ist, die das Objekt, für as sie aufgerufen wird nicht ändert.Eine konstante Memberfunktion kann keine nicht statischen Datenmember ändern oder Memberfunktionen aufrufen, die nicht konstant sind.
Um eine konstante Memberfunktion zu deklarieren, platzieren Sie das Schlüsselwort const nach der schließenden Klammer der Argumentliste.Das const-Schlüsselwort ist in der Deklaration und Definition erforderlich.
Beispiel
// constant_member_function.cpp
class Date
{
public:
Date( int mn, int dy, int yr );
int getMonth() const; // A read-only function
void setMonth( int mn ); // A write function; can't be const
private:
int month;
};
int Date::getMonth() const
{
return month; // Doesn't modify anything
}
void Date::setMonth( int mn )
{
month = mn; // Modifies data member
}
int main()
{
Date MyDate( 7, 4, 1998 );
const Date BirthDate( 1, 18, 1953 );
MyDate.setMonth( 4 ); // Okay
BirthDate.getMonth(); // Okay
BirthDate.setMonth( 4 ); // C2662 Error
}