Оператор const в C++ имеет довольно много способов использования, и все они связаны с основным назначением данного оператора – неизменяемость. Он означает что какой либо объект, указатель или что-либо другое не меняется и сохраняет свое значение до конца работы программы. Рассмотрим некоторые из способов применения. Первый из них – объявление констант.
1 2 3 4 |
const int a = 4; a = 8; a = b; |
Значение a не будет меняться на другое, и до конца программы останется равным 4. Вторым способом является использование const в указателях.
1 2 3 4 5 6 |
int *const a1 int *const a1 = &b; *a1 = 5; int const* a2 int c = 1; p = &c; |
В этих двух объявлениях указателей модификатор const делает различные функции. Для a1 это означает, что присвоение указателя пройдет лишь 1 раз и после этого присваивать что-то другое нельзя. Но само число, на которое ссылается число, изменять можно. Для a2 ситуация диаметрально противоположна. Присваиваемый указатель изменить можно, а число, на которое он указывает, уже нет. Аналогично все происходит и со ссылками.
Еще одним способом является использование const в параметрах функции, позволяющее запретить изменения параметра.
1 |
void a1(const int& b); |
Если использовать const в объявлении функции, то функция будет доступна только для чтения и не может изменить вызываемый объект.
1 2 3 4 |
int ClassQ::getA() const { return A; } |