C++中的全局变量

Sas*_*shi 5 c++ singleton global-variables extern

在具有许多类的C++多线程应用程序中,我试图找出定义全局变量的方法

  1. C样式,在任何一个源文件中将其定义为全局,在头部中将其定义为extern,该头部包含在访问此变量的类中.

  2. 编写一个Singleton类,它包含这些全局变量并公开set/get方法来写入变量.

通过第二种方法,可以以集中方式而不是第一种方法通过锁来控制多线程访问.

有更多更好的方法吗?

Ste*_*end 3

如果可以缩小“全局变量”的范围(通常是这种情况 - 有多少变量是真正的全局变量?),那么您可以将其设为相应所属类中的私有静态类成员。如果您的其他类需要查看它(或者不太可能更新它),请提供 get/put 访问器。