当双冒号" ::"前面没有附加名称空间时,这种语法是什么意思? ?
假设我有一个Foo类。代码中的某处就像:: Foo。
答案 0 :(得分:3)
它表示全局命名空间。
请考虑此代码
#include <iostream>
int x = 10;
namespace N
{
int x = 20; // Or you could write int x = 10 + ::x;
}
int main()
{
int x = 30;
std::cout << ::x + N::x + x << std::endl;
}
在本声明中考虑
std::cout << ::x + N::x + x << std::endl;
您可以编写::N::x
而不是N::x
,因为命名空间N包含在全局命名空间中。