c++ - 在 C++ 中实现全局应用程序设置

标签 c++ configuration singleton global-variables application-settings

我有一个比较大的学术模拟软件(50节课)。用户选择一个包含 20 多个项目的配置文件。这些常量变量在整个模拟平台(几乎在每个类中)都被使用。模拟每秒运行数十万个代理对象几次,因此性能非常重要。

目前我使用单例设置类。我使用该实例在程序启动时将已从文件中读取到类中的值获取(我不想在所有其他类中添加对设置类的引用)。

1- 我最近运行了一个分析器,发现对 getInstance().getSomeSetting() 的过度调用影响了性能。

2- 每次说到单例的使用,都会收到很多骂声。

在这种情况下访问设置的最佳做法是什么?我应该为这 20 多个配置项使用全局变量吗?

最佳答案

您可以将配置对象保存在 shared_ptr 中并将其传递到您想要的任何地方,这样您将拥有一个单独的设置对象

关于c++ - 在 C++ 中实现全局应用程序设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15608398/

相关文章:

c++ - 目标文件中未解析的外部符号

python - 如何在 Python 中内存类实例化?

c++ - 单例可以在其析构函数中使用另一个单例吗?

c++ - 表达式 x---y 是如何解析的?是合法的表达方式吗?

c++ - 生成字符串 vector 的所有组合

c++ - 函数需要参数并返回指向 void 函数的指针

c# - ASP.net Core 2.0 中的 appsettings.json 预览配置 GetSection null

configuration - FitNesse 配置文件

c# - 使用 IPAddress 列序列化 DataTable

c# - StructureMap 容器对象是线程安全的吗?