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

时间:2012-04-23 05:54:15

标签: c++ global-variables global

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

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

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

谢谢!

1 个答案:

答案 0 :(得分:8)

将所有相关的变量置于一个屋檐下,以便于访问。有两种方法可以:

(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()方法作为namespace / class中的包装 如果程序需要,你可以使用getter-setter以线程安全的方式处理它们。