你好,
我对变量的可访问性有一点疑问。
int i; //default the linkage is external
const int i; //default linkage is internal
extern int i; //explicitly assigning linkage as external
class a
{
int l; //Default linkage is external
void f()
{
int k; //default linkage is external
}
}
这个link说 非 const 符号的默认链接是 extern,const 符号的默认链接是 static(内部)。
int i
是否可以在没有外部关键字的情况下在其他文件中访问?
类和函数中存在的变量怎么样?
如何访问匿名 namespace 中存在的函数以及它们之间有什么联系?
namespace //members of anonymous namespace
{
class C{};
int x;
}
最佳答案
int i;
具有外部链接,并且位于普通命名空间中,因此可以从其他文件访问。他们必须在同一命名空间(在本例中为全局命名空间)中声明 extern int i;
才能访问它。
无法从其他文件访问未命名命名空间的成员 - 这就是命名空间的用途。尽管它们可以有外部链接,但它们的命名空间对于当前文件是唯一的,因此另一个文件中的相同声明将引用不同的东西,对于该文件是唯一的。
关于c++ - 变量的可访问性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3564569/