命名空间语法“:: Foo”

时间:2014-11-28 20:18:57

标签: c++ syntax namespaces

当双冒号" ::"前面没有附加名称空间时,这种语法是什么意思? ?

假设我有一个Foo类。代码中的某处就像:: Foo。

1 个答案:

答案 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包含在全局命名空间中。