2011-05-11 48 views
9

Considere la siguiente línea de código::: sin espacio de nombres

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

¿Cómo es que no hay ningún espacio de nombres especificado antes ::? ¿Eso significa que está usando el mismo espacio de nombres que la clase en la que se encuentra?

Respuesta

7

:: se refiere al espacio de nombre global.

3

:: sin ningún nombre de espacio de nombres antes de que los medios él se refiere Espacio de nombres global.

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

significa que se refiere a CGContextRef en el Espacio de nombres global.

8

:: en ::CGContextRef significa espacio de nombres global, lo que significa CGContextRef se define en el espacio de nombres global.

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

Ver demostración completa aquí: http://www.ideone.com/LM8uo

Cuestiones relacionadas