Funzioni membro costanti
Dichiarare una funzione membro con la parola chiave const specifica che la funzione è una funzione “readonly„ non modifica l'oggetto di cui venga chiamato.Una funzione membro costante non può modificare alcuni membri dati non statico oppure chiamare le funzioni membro che non sono costanti.
Per dichiarare una funzione membro costante, inserire la parola chiave const dopo la parentesi di chiusura dell'elenco di argomenti.La parola chiave const è necessaria sia nella dichiarazione che nella definizione.
Esempio
// 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
}