Этот вопрос вдохновлен вопросом о finalв Java .
В C / C ++ я должен использовать, constкогда это возможно?
Я знаю, что уже есть связанный вопрос об использовании constв параметрах . К сожалению, этот вопрос и его ответы не полностью отвечают на мой вопрос, потому что он касается только параметров функции, но я также хотел бы узнать о других случаях (например, локальные переменные).
Кроме того, почти все ответы на этот вопрос говорят, что мы должны использовать, constпотому что он содержит полезную информацию о доступности переменных. Но это, кажется, вступает в противоречие с ответом об использовании final в Java, который finalможет быть лишним, если он не содержит дополнительной информации, и поэтому его следует опустить, чтобы код был коротким и чистым.
Итак, я должен использовать, constкогда это возможно? Если так, то почему совет constв C ++ отличается от совета finalв Java?
finalиconstне имеете таких же гарантий.