"::"在C++中意味着什么?

Mil*_*hiz 15 c++

这个符号是什么意思?

AirlineTicket::AirlineTicket()
Run Code Online (Sandbox Code Playgroud)

Eri*_*rik 34

::是范围解析运算符 - 用于限定名称.在这种情况下,它用于将类AirlineTicket与构造函数分开AirlineTicket(),形成限定名AirlineTicket::AirlineTicket()

无论何时你需要明确你所指的是什么,你都可以使用它.一些样品:

namespace foo {
  class bar;
}
class bar;
using namespace foo;
Run Code Online (Sandbox Code Playgroud)

现在,您必须使用范围解析运算符来引用特定的条形图.

::foo::bar 是一个完全限定的名称.

::bar是另一个完全限定的名称.(::首先是"全局命名空间")

struct Base {
    void foo();
};
struct Derived : Base {
    void foo();
    void bar() {
       Derived::foo();
       Base::foo();
    }
};
Run Code Online (Sandbox Code Playgroud)

这使用范围分辨率来选择foo的特定版本.


mae*_*ics 9

在 C++ 中,它::被称为Scope Resolution Operator。它清楚地表明符号属于哪个命名空间或类。