我的目标是在我正在开发的 C++ 游戏中拥有全局常量(以表示一些图形信息等)。我目前的实现是将它们全部扔到一个 .h 中并将它们包含在任何地方。这行得通,除了每次我更改设置时,都必须重新编译整个代码库。
所以,我的下一个想法是将它们扔到一些配置 txt 文件中并解析它们,这样当设置更改时实际上不会更改任何代码。解析器很简单,我可以将值放入常量中,但是因为解析器是一个代码块,所以常量不再是全局的。
有没有解决这个问题的好方法?也许某种方式可以使它们成为全局,尽管它们处于一个块中,或者某种方式可以避免在更改设置时重新编译所有内容?
原文由 Cannoliopsida 发布,翻译遵循 CC BY-SA 4.0 许可协议
另一种方法是创建一个单例类。
这里配置保存在一个map中,也就是说只要parseFile可以读取文件,getValue可以解析类型,添加新key就不需要重新编译config类。
用法: