Вопрос о «const» функциях, c ++ - PullRequest
       21

Вопрос о «const» функциях, c ++

0 голосов
/ 10 сентября 2011

Я понимаю, что когда я объявляю функцию-член как const, я фактически говорю, что я не буду менять класс. Мой вопрос - относится ли «класс» к (*) этому экземпляру или к классу в целом?

Например, если у меня есть функция-член const, которая создает новый экземпляр того же класса и редактирует этот экземпляр, это законно?

спасибо!

1 Ответ

1 голос
/ 10 сентября 2011

const относится к экземпляру, в котором вы вызываете функцию, поэтому статические функции-члены не могут быть объявлены как const. Функция const может читать, но не записывать поля экземпляра this, и она может вызывать только статические и константные методы this, но она имеет полный доступ к глобальной области.

...