【问题标题】:What does :: mean in C++? [duplicate]:: 在 C++ 中是什么意思? [复制]
【发布时间】:2014-11-08 02:29:29
【问题描述】:

下面显示了一行 C++ 代码。

return ::as_Register(value() >> 1);

我只想知道前面什么都没有的'::'是什么意思。

是 C++ 语法吗? '::'之前可以没有任何东西吗?比如return ::myMalloc(size)?

代码来自jdk8openjdk/hotspot/src/cpu/x86/vm/vmreg_x86.inline.hpp

我正在深入研究JDK。

【问题讨论】:

标签: java c++ jvm


【解决方案1】:

:: 引用全局命名空间:

void bar();

namespace some_namespace
{
    void bar();

    void foo()
    {
        // writing bar() would call some_namespace::bar()
        // but if we want to call the global bar() we have to write:
        ::bar();
    }
}

【讨论】:

    【解决方案2】:

    它是 C++。这意味着您从其他命名空间导入此函数。

    例子:

    namespace foo {
      void bar();
    }
    
    void bar();
    
    namespace foo {
      void foobar()
      {
        bar(); // Means foo::bar()
        ::bar(); // Means bar() outside foo namespace
      }
    }
    

    【讨论】:

    • 谢谢您!您的回答非常好,但我只能选择一个正确的答案,所以很抱歉没有给您正确的答案。最后,非常感谢您的帮助。@alkino
    猜你喜欢
    • 2019-09-12
    • 2015-06-25
    • 2019-12-08
    • 2013-02-12
    • 2011-06-10
    • 2014-02-02
    • 2014-06-25
    • 2011-05-06
    • 2021-05-17
    相关资源
    最近更新 更多