:: 没有命名空间

2022-01-14 00:00:00 namespaces c++

考虑以下代码行:

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

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

How come there's no namespace specified before :: ? Does that mean it's using the same namespace as the class you're in?

推荐答案

:: in ::CGContextRef 表示全局命名空间,即CGContextRef 在全局命名空间中定义.

:: in ::CGContextRef means global namespace, which means CGContextRef is defined in the global namespace.

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

See complete demo here : http://www.ideone.com/LM8uo

相关文章