Funciones miembro constantes
Declarar una función miembro con la palabra clave const especifica que la función es una función de “solo lectura” que no modifica el objeto para el que se llama. Una función miembro constante no puede modificar los miembros de datos no estáticos ni llamar a funciones miembro que no sean constantes.
Para declarar una función miembro constante, coloque la palabra clave const después del paréntesis de cierre de la lista de argumentos. La palabra clave const se requiere tanto en la declaración como en la definición.
Ejemplo
// 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
}