Как запретить изменение значения непостоянной переменной?
Доброе время суток. Все мы знакомы с оператором const. Но как быть, если значение константной переменной неизвестно на момент компиляции? Если быть конкретнее, то есть конфиг-файл, в котором хранятся какие-то значения собственных констант (например, наименование проекта). При запуске программы я хочу выгрузить наименование проекта в переменную, например, PROJECT_NAME. И в дальнейшем (во время работы программы) это название изменяться не будет. Так вот как предотвратить программно возможность изменения этой переменной? Было бы здорово сделать просто const name[20] = "PROJECT NAME", но на момент компиляции название проекта неизвестно. А объявление неинициализированной константной переменной невозможно.
Я не знаком с таким оператором. :)
Поясни, о чем ты пишешь. Обязательно со ссылками на стандарт, вдруг я там что-то где-то не дочитал.
я хочу выгрузить
Может все таки загрузить? У тебя странная терминология.
в переменную
Или же все таки в константу? Я что-то так и не понял.
но на момент компиляции название проекта неизвестно.
Да, как-бы, как сделаешь. Оно, в общем смысле, уже известно на этот момент и может быть легко передано параметром компилятора.
Ты не знаешь как делать предопределения через компилятор? Или тебе хочется сделать правильную систему конфигурации? Имя проекта в конфиге хранить - очень плохо. Имя проекта - это константа для проекта, а конфиг всегда можно изменить.
Возможно вам подойдет какой-то singletonкласс в который будут загружены переменные из файла, а далее сделать геттеры у которых возвращаемое значение помечено как const, чтобы нельзя было из изменить. Да и сами методы тоже, чтобы обозначить что они не меняют состояние объекта.