Re[4]: "class const - метод" - можно ли организовать?
От: _hum_ Беларусь  
Дата: 23.09.15 11:18
Оценка:
Здравствуйте, Mystic, Вы писали:

M>Здравствуйте, _hum_, Вы писали:



__>>вы не совсем тогда поняли — я хочу гарантию, что ВЫЗОВ ДАННОГО МЕТОДА не приведет к изменению данных, а не что эти данные ВОВСЕ не должны меняться.

__>>и реализация этого вроде бы не сложная — компилятор должен все this-указатели данного класса, которые попадают в область видимости данного метода, считать const this. тогда бы он смог выдать ошибку в вашем примере, типа:
__>>"m_p_non_const->m_x = x : использование неконстантного указателя на класс t_Something внутри class const метода"

M>Это может быть и некоторый другой класс, откуда компилятору знать, куда будет указывать m_p_non_const в момент вызова метода?


неважно, куда будет указывать. главное, какого он типа. а это определяется на этапе компиляции.
(речь не о динамических отлавливаниях изменений, когда, действительно, требуется рантайм-анализ указателей, а о статическом — мы просто тупо запрещаем в коде, попадающем в область видимости данного метода, менять что-то через указатели данного класса)
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.