在 C++ 中创建环境对象的最佳方法

ran*_*ght 2 c++ environment

我想创建一个可以从我程序中的所有类访问的环境类,但我不想在每次我想从其他类访问其成员时都初始化环境对象。在 C++ 中执行此操作的最佳方法是什么?

我想这样做是因为我让环境对象存储了其他类可能使用的所有配置值。这些值是从多个位置读取的,包括不同的文件。我不想每次在我的类中创建一个新的环境对象时都解析这些文件。

Ida*_*n K 5

单例对象并不总是解决方案。虽然有时这似乎是一个简单的解决方案,但它确实有一些缺点(例如,请参阅此问题)。

有多少类实际上需要访问这个 Environment 对象?如果你的字面意思是你上过的每一门课,那么听起来你的设计是有缺陷的。

通常,单例的更好替代方法是将对象传递给真正需要它的人。