当前位置:  开发笔记 > 编程语言 > 正文

声明全局变量的最佳方法是什么?

如何解决《声明全局变量的最佳方法是什么?》经验,为你挑选了1个好方法。

在C++中,假设您要声明一个全局变量供许多人使用.你怎么做呢?

我通常在cpp文件中使用declare和define,然后在其他cpp文件中使用extern(而不是头文件).

我不喜欢这种方法,我正在考虑以下几点:

在头文件中:

some_file.h

Class MYGlobalClass
{

};


MyGlobalClass& MyGlobalClassInstance()
{
   static MYGlobalClass instance; 
   return  instance;

}

编辑

请考虑以下情况:

可用于多线程应用程序

名称空间污染

可能不会成为单身人士,因为可能会创建许多此类实例

你有什么想法,建议,新想法?



1> jalf..:

最好的建议可能是"尽量避免全局".人们不像他们想象的那样经常需要全局变量.通常情况下,"将所有内容作为参数传递给构造函数"并不像人们在听到建议时所想的那么多.它还倾向于使用更少,更明确的依赖性来实现更清晰的代码.

我不知道在C++中声明全局变量的任何"正确"方法.你现在的方式工作正常,但初始化的顺序是未指定的,所以如果你的全局变量之间存在任何依赖关系,那你就麻烦了.

返回静态实例的函数或多或少地解决了这个问题,但不是线程安全的.

单身只是一个可怕的想法.它不能解决您的问题,但会为您的代码添加额外的约束,而这些约束实际上并不是必需的,并且很可能会在以后再次出现.

推荐阅读
LEEstarmmmmm
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有