::没有命名空间

时间:2011-05-11 15:20:46

标签: c++ namespaces

考虑以下代码行:

::CGContextRef cgContext = cocoa::createCgBitmapContext( surface );

为什么之前没有指定名称空间:: ? 这是否意味着它使用与您所在类相同的命名空间?

3 个答案:

答案 0 :(得分:8)

::中的

::CGContextRef表示全局命名空间,这意味着CGContextRef在全局命名空间中定义。

int x = 10; 
namespace test
{
    int x = 100;
    void f() 
    {
         std::cout << x << std::endl;  //prints 100
         std::cout << ::x << std::endl; //prints 10
    }     
}

请在此处查看完整演示:http://www.ideone.com/LM8uo

答案 1 :(得分:7)

::指的是全局命名空间。

答案 2 :(得分:3)

::之前没有任何名称空间名称意味着它指的是 全局命名空间

::CGContextRef cgContext = cocoa::createCgBitmapContext( surface );

表示在全局命名空间中引用CGContextRef