C++输入全局变量可跨多个类访问

JDH*_*JDH 6 c++ global global-variables

我正在开发一个带有几个命令行参数的项目,并将这些参数用作后续模拟的参数.(我希望批量运行大量实验).

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

目前我将它们读入Config对象,我将其包含在其他类中.如果有人有更好的想法(xml?)我都是耳朵.

谢谢!

iam*_*ind 8

将所有相关变量放在一个屋檐下以便于访问.有两种方法:

(1)命名空间全局变量

namespace Configuration {
  extern int i;
  extern bool b;
  extern std::string s;
}
Run Code Online (Sandbox Code Playgroud)

(2)类静态成员

class Configuration {  // provide proper access specifier
  static int i;
  static bool b;
  static std::string s;
}
Run Code Online (Sandbox Code Playgroud)

要很好地跟踪它们,请使用getter() - setter()方法作为namespace/class中的包装器.
使用getter-setter,如果程序需要,您可以以线程安全的方式处理它们.