Konstantní členské funkce
Deklarace členské funkce pomocí klíčového slova const určuje, že funkce je funkce "jen pro čtení", která neprovádí úpravy objektu, pro který je volána.Konstantní členská funkce nemůže měnit jakékoli nestatické datové členy ani volat jakékoli členské funkce, které nejsou konstantní.
Pro deklarování konstantní členské funkce je třeba umístit klíčové slovo const za uzavírací závorku seznamu argumentů.Klíčové slovo const je požadováno v deklaraci a v definici.
Příklad
// 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
}