【发布时间】:2010-09-02 14:12:01
【问题描述】:
我有两个需要访问公共变量的源文件。做这个的最好方式是什么?例如:
source1.cpp:
int global;
int function();
int main()
{
global=42;
function();
return 0;
}
source2.cpp:
int function()
{
if(global==42)
return 42;
return 0;
}
变量 global 的声明应该是 static、extern 还是应该在两个文件都包含的头文件中等等?
【问题讨论】:
-
this question 的可能重复项。
-
重新编写代码以使用全局变量以外的内容 - 或将问题重新标记为“C”。当我需要 C++ 中的全局变量时,我通常将其设为可通过访问器方法公开读取的类的静态成员。如果可以缩小范围以便只有内部类成员使用访问器,那就更好了。很少有变量是真正“全局”的。
-
取决于你想做什么
-
function()对这两个来源也很常见,需要相同的处理。对于global,“最好的方法”是不这样做。 eetimes.com/discussion/break-point/4025723/A-pox-on-globals -
静态类成员如何不是“真正的全局”?这听起来像是为了“成为 C++”而以不同的方式实现相同的目标。
标签: c++