【问题标题】::: without a namespace:: 没有命名空间
【发布时间】:2011-08-23 10:11:48
【问题描述】:

考虑以下代码行:

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

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

【问题讨论】:

    标签: c++ namespaces


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      :: 指的是全局命名空间。

      【讨论】:

        【解决方案3】:

        :: 之前没有任何命名空间名称意味着它引用 全局命名空间

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

        表示在全局命名空间中引用CGContextRef

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-12-31
          • 2013-03-25
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多