:: без пространства имен - PullRequest
10 голосов
/ 11 мая 2011

Рассмотрим следующую строку кода:

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

Почему пространство имен не указано ранее: * ? Означает ли это, что он использует то же пространство имен, что и класс, в котором вы находитесь?

Ответы [ 3 ]

8 голосов
/ 11 мая 2011

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

7 голосов
/ 11 мая 2011

:: относится к глобальному пространству имен.

4 голосов
/ 11 мая 2011

:: без какого-либо имени пространства имен, прежде чем оно означает, что оно ссылается на Глобальное пространство имен .

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

означает обращение к CGContextRef в Глобальном пространстве имен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...