【发布时间】:2011-08-23 10:11:48
【问题描述】:
考虑以下代码行:
::CGContextRef cgContext = cocoa::createCgBitmapContext( surface );
为什么 在 :: 之前没有指定命名空间? 这是否意味着它使用与您所在的类相同的命名空间?
【问题讨论】:
标签: c++ namespaces
考虑以下代码行:
::CGContextRef cgContext = cocoa::createCgBitmapContext( surface );
为什么 在 :: 之前没有指定命名空间? 这是否意味着它使用与您所在的类相同的命名空间?
【问题讨论】:
标签: c++ namespaces
::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 cgContext = cocoa::createCgBitmapContext( surface );
表示在全局命名空间中引用CGContextRef。
【讨论】: