const przed lub za typem oznacza, że danej wartości nie możesz edytować
czyli:
const type function();
oznacza, że funkcja/metoda zwróci wartość, której nie będzie można zmodyfikować np. w klasie:
const string& nazwaklasy()
{
return nazwaklasy_;
}
zwraca referencje do pola nazwaklasy_ nie pozwalajac tego pola edytowac z zewnątrz.
int function(const type param);
oznacza, że parametr podany w funkcji nie bedzie mogl byc zmieniany w srodku:
int costam(const int n)
{
// tutaj nie mozesz zmienic n (przydatne jesli nie chcesz przypadkiem zmodyfikowac wartosci)
}
lub ważniejsze:
int costam(const string& s)
{
// ...
}
twoja funkcja przyjmuje referencje do stringa czyli moze korzystac z tekstu ktory przechowuje ale wiadomo ze funkcja tego tekstu nie zmieni
i teraz w klasie:
int function() const
{
//...
}
oznacza, że metoda w żaden sposób nie zmienia klasy np.:
int size() const
{
//
}
wiadomo ze wywolanie tej funkcji w zaden sposob nie zmopdyfikuje klasy
dzieki temu zapis:
const klasa obiektklasy;
obiektklasy.size()
jest dozwolony