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

标签 c++ global-variables global

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

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

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

谢谢!

最佳答案

将所有相关的变量集中在一个屋檐下以便于访问。可能有 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() 方法作为 namespace /类中的包装器。
如果程序需要,您可以使用 getters-setters 以线程安全的方式处理它们。

关于C++ 输入全局变量可跨多个类访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10275479/

相关文章:

c++ - 常量和全局

c++ - 令人困惑的 C++ 全局范围问题

css - 我将如何在 HTML 页面中创建全局脚本,这样我就不需要经常更改位置?

c - 全局变量的“初始化程序不是常量”?

c++ - 中缀到后缀表达式转换代码不起作用

c++ - Box2d cpp 给出 : box2d expression area > 1. 1 异常

c++ 编译问题——可以使用 cl.exe 正常编译,但无法从 Visual Studio 2015 编译

Python 列出 OO 编程中的别名或全局变量。不同的结果,同样的过程

javascript - 如何避免 JSDoc 在 Node JS 函数中生成全局范围文档?

c++ - 调用 fdopen() 后出现 Errno 22