Моя цель - иметь глобальные константы в игре на C++, над которой я работаю (для представления некоторой информации о графике и т. П.). Моя текущая реализация заключается в том, чтобы бросить их всех в .h и включить их повсюду. Это работает, за исключением того, что каждый раз, когда я меняю настройку, вся база кода должна быть перекомпилирована.Правильная реализация глобальной конфигурации
Итак, моя следующая идея заключалась в том, чтобы бросить их в некоторый конфигурационный файл txt и проанализировать их, таким образом, ни один код не будет изменен при изменении настроек. Парсер был достаточно прост, и я мог поместить значения в константы, но поскольку парсер был блоком кода, константы больше не были глобальными.
Есть ли хороший способ решить эту проблему? Возможно, каким-то образом сделать их глобальными, несмотря на то, что они находятся в блоке или каким-то образом, чтобы не перекомпилировать все при изменении настроек?
По общему признанию, я изначально хотел сделать это без добавления таких конструкций, как это, но это следует за соглашениями OO и работает лучше вообще! Мне понравились предложения Иоакима, но это то, что решило его для меня, спасибо! – akroy
@akroy Я прошу не согласиться. О каких конвенциях ОО вы вообще имеете в виду? У нас есть синглтон. Некоторое решение программиста-чувака явно превосходит введение синглтона, которое в основном строится вокруг 'std :: map' с медленным поиском и без безопасности типов без реальной выгоды по сравнению с голой переменной – IceFire
Hey IceFire! Для контекста этот вопрос - от 5 лет назад, когда я впервые учился программировать. Глядя на поток комментариев, похоже, я также предпочел решение некоторых программистов-чуваков в теории, но не смог получить его мимо компилятора. Итак, если он компилируется для вас, вам больше силы. :) – akroy