Рассмотрим следующую строку кода:
::CGContextRef cgContext = cocoa::createCgBitmapContext( surface );
Почему пространство имен не указано ранее: * ? Означает ли это, что он использует то же пространство имен, что и класс, в котором вы находитесь?
:: в ::CGContextRef означает глобальное пространство имен, что означает, что CGContextRef определено в глобальном пространстве имен.
::
::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
:: относится к глобальному пространству имен.
:: без какого-либо имени пространства имен, прежде чем оно означает, что оно ссылается на Глобальное пространство имен .
означает обращение к CGContextRef в Глобальном пространстве имен.