const_cast
- для случаев, когда у вас есть постоянная ссылка на переменную, которая не const
. По сути, это способ обмана, если вы знаете , что ссылаетесь на неконстантный объект. Я думаю, что «хороший» (честно говоря, я никогда не думаю, что это на самом деле хороший) пример const_cast
предназначен для случаев, когда у вас есть внутренняя структура, которая обычно модифицирует себя, но представляет себя как const
при доступе извне (способ сделать вещи доступными только для чтения извне).
Если вы попытаетесь изменить фактические данные, объявленные как const, то они не определены, и в зависимости от того, на какой системе вы работаете, изменится ошибка. Некоторые среды могут вызывать segfault, другие ничего не будут делать (постоянная память с игнорируемыми записями), а некоторые могут изменить данные в любом случае (например, если данные программы полностью загружены в обычную, доступную для записи память).