@odosenok

Как запретить изменение значения непостоянной переменной?

Доброе время суток. Все мы знакомы с оператором const. Но как быть, если значение константной переменной неизвестно на момент компиляции? Если быть конкретнее, то есть конфиг-файл, в котором хранятся какие-то значения собственных констант (например, наименование проекта). При запуске программы я хочу выгрузить наименование проекта в переменную, например, PROJECT_NAME. И в дальнейшем (во время работы программы) это название изменяться не будет. Так вот как предотвратить программно возможность изменения этой переменной? Было бы здорово сделать просто const name[20] = "PROJECT NAME", но на момент компиляции название проекта неизвестно. А объявление неинициализированной константной переменной невозможно.
  • Вопрос задан
  • 632 просмотра
Пригласить эксперта
Ответы на вопрос 2
@lil_Toady
Возможно вам подойдет какой-то singletonкласс в который будут загружены переменные из файла, а далее сделать геттеры у которых возвращаемое значение помечено как const, чтобы нельзя было из изменить. Да и сами методы тоже, чтобы обозначить что они не меняют состояние объекта.
Ответ написан
@vanyamba-electronics
const std::string& get_project_name()
{
    static string project_name;
    if (project_name.length() == 0)
        project_name = init_project_name();
    return project_name;
}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы