6

我正在开发一个需要几个命令行参数的项目,并将这些参数用作后续模拟的参数。(我想批量运行大量实验)。

在运行时设置全局变量的最佳方法是什么?就全局而言:变量可能会在运行期间发生变化,但应该可以跨大量类访问。

目前我将它们读入一个包含在其他类中的 Config 对象。如果有人有更好的想法(xml?)我全神贯注。

谢谢!

4

1 回答 1

8

将所有相关变量集中在一个屋檐下,以便于访问。2种方法是可能的:

(1) 命名空间全局变量

namespace Configuration {
  extern int i;
  extern bool b;
  extern std::string s;
}

(2) 类静态成员

class Configuration {  // provide proper access specifier
  static int i;
  static bool b;
  static std::string s;
}

为了很好地跟踪它们,使用 getter()-setter() 方法作为命名空间/类中的包装器。
如果程序需要,您可以使用 getter-setter 以线程安全的方式处理它们。

于 2012-04-23T06:02:32.710 回答