Fonctions membres constantes
La déclaration d'une fonction membre avec le mot clé de const spécifie que la fonction est une fonction « readonly » qui ne modifie pas l'objet pour lequel elle est appelée.Une fonction membre constante ne peut modifier les données membres non statiques ou appeler les fonctions membres qui ne sont pas constantes.
Pour déclarer une fonction membre constante, définissez le mot clé de const après le crochet fermant de la liste d'arguments.Le mot clé de const est requis dans la déclaration et la définition.
Exemple
// 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
}