我有一个foo
包含整数的命名空间bar
,声明如下...
富.h:
namespace foo {
int bar;
}
现在,如果我foo.h
只包含在一个文件中,这工作得很好。但是当我包含两个或多个文件时会出现问题foo.h
:我收到链接器错误。我发现如果我声明bar
为static
,我可以包含foo.h
在多个文件中。这对我来说似乎很奇怪,因为我不知道可以在命名空间内声明一个静态变量。(那有什么意思?)
为什么这行得通?更重要的是,为什么没有它就不能 static
工作?在 a 中使用时是什么static
意思namespace
?