【发布时间】:2012-07-22 08:00:08
【问题描述】:
我有一个命名空间foo,其中包含一个整数bar,声明如下...
foo.h:
namespace foo {
int bar;
}
现在,如果我只在一个文件中包含foo.h,这工作得很好。但是当我从两个或多个文件中包含foo.h 时会出现问题:我收到链接器错误。我发现如果我将bar 声明为static,我可以在多个文件中包含foo.h。这对我来说似乎很奇怪,因为我不知道可以在命名空间内声明一个静态变量。 (这甚至意味着什么?)
为什么会这样?更重要的是,为什么不它工作没有static?在namespace 中使用static 是什么意思?
【问题讨论】:
标签: c++ static namespaces