Константные методы (const methods) в C++ — это методы класса, которые объявлены с ключевым словом const после списка параметров.
c
Ключевое слово const после списка параметров гарантирует, что метод не будет изменять состояние объекта, для которого он вызван. Это означает, что внутри константного метода:
Назначение константных методов:
const) могут вызывать только константные методы. Неконстантные методы им недоступны.c
Неконстантные методы:
Это обычные методы класса, которые могут изменять состояние объекта. Объявляются без ключевого слова const после списка параметров.
Использование:
| Тип объекта | Вызов метода | Какой метод будет вызван | Пояснение |
|---|---|---|---|
const T | obj.method() | Только константный | Нельзя изменять состояние константного объекта. |
T | obj.method() | Неконстантный (если есть) | Неконстантные методы могут изменять состояние. |
T | obj.method() const | Константный (если есть) | Если есть обе версии и вызывается на неконстантном объекте, приоритет у неконстантной. Но можно явно привести объект, если нужно вызвать константную версию (редко применяется). |
Использование константности является хорошей практикой, так как повышает читаемость и безопасность кода, а также позволяет компилятору выполнять дополнительные оптимизации.