Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
Ну не всегда константный элемент объекта может... 03.10.05 11:25 Число просмотров: 1958
Автор: DPP <Dmitry P. Pimenov> Статус: The Elderman Отредактировано 03.10.05 11:26 Количество правок: 1
|
> Даже конструктор не всегда вызывается. Один из самых > распространенных способов использования констант - > глобальные (или статические в классе) целочисленные > переменные, которые инициализируются прямо на месте. В этом > случае оптимизатор заменяет все обращения к константе на ее > значение, а линкер вырезает неиспользуемую переменную. > Результат - в точности такой же как и при использовании > #define, но с типизацией.
Ну не всегда константный элемент объекта может инициализироваться константой. Может это быть и переменная, и системный параметр (текущее время, например), и что-то считанное из файла.
> Общая рекомендация при использовании ссылок при передаче > параметров: если функция не собирается менять содержимое, > ее надо объявлять const. Это не требование языка, а просто > стилистическая рекомендация. Таким образом будет видно, > если передана неконстантная ссылка, то в нее возвращается > какое то значение. > > Ключевое слово mutable придумано специально для таких > целей: счетчики ссылок/кеширование и пр. изменения > ПРЕДСТАВЛЕНИЯ, которое логически не изменяют сам объект.
Мои архаичные копайлеры "mutable" не поймут, ничего, смирюсь в ворнингами.
|
|
|