В C++, когда я должен сделать метод постоянным?

Название моего вопроса в значительной степени задает все это. Недавно я обнаружил, что это хорошая практика программирования на C++ - передавать множество значений по константной ссылке и помечать определенные методы в классах как постоянный метод. Прямо сейчас, у меня есть библиотека, которую я писал для себя некоторое время, которая не имеет абсолютной корректности, поэтому я хотел бы начать исправлять это постепенно.

В каких конкретных случаях я должен сделать метод постоянным? До сих пор я знаю, что методы "getter" должны обычно делаться постоянными (поскольку код в одном не должен изменять какие-либо переменные класса), но я делаю это для всех методов, которые считаются getter, или только для определенных? И кроме методов получения, какие другие сценарии должны делать методы постоянными?

2 ответа

Решение

Когда я должен сделать метод постоянным?

Как правило, вы должны делать метод постоянным всякий раз, когда ни одна из переменных-членов объекта не изменяется.

В качестве дополнительного руководства, вы должны делать это только тогда, когда вы уверены, что метод не будет изменен в будущем для изменения переменных-членов.

В конечном итоге, если вы планируете, чтобы метод влиял на переменные-члены, он должен быть непостоянным. В противном случае оно должно быть постоянным.

но я делаю это для всех методов, которые считаются получателями, или только для определенных?

Вы должны сделать это для всех методов, которые не изменяют неизменяемые члены. Они включают в себя не только функции получения, но и любые перегруженные операторские функции, такие как operator==, operator!=, operator<,

Другие вопросы по тегам