2011-05-11 80 views
9

考虑下面的代码行:::没有命名空间

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

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

回答

7

::指向全局命名空间。

3

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

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

表示参考Global Namespace中的CGContextRef

8

:: in ::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