What does the “::” mean in C++?

后端 未结 4 1811
花落未央
花落未央 2021-02-07 03:10

What does this symbol mean?

AirlineTicket::AirlineTicket()
相关标签:
4条回答
  • 2021-02-07 03:42

    It declares a namespace. So in AirlineTicket:: you can call all public functions of the AirlineTicket class and AirlineTicket() is the function in that namespace (in this case the constructor).

    0 讨论(0)
  • 2021-02-07 03:48

    :: is the scope resolution operator - used to qualify names. In this case it is used to separate the class AirlineTicket from the constructor AirlineTicket(), forming the qualified name AirlineTicket::AirlineTicket()

    You use this whenever you need to be explicit with regards to what you're referring to. Some samples:

    namespace foo {
      class bar;
    }
    class bar;
    using namespace foo;
    

    Now you have to use the scope resolution operator to refer to a specific bar.

    ::foo::bar is a fully qualified name.

    ::bar is another fully qualified name. (:: first means "global namespace")

    struct Base {
        void foo();
    };
    struct Derived : Base {
        void foo();
        void bar() {
           Derived::foo();
           Base::foo();
        }
    };
    

    This uses scope resolution to select specific versions of foo.

    0 讨论(0)
  • 2021-02-07 03:53

    In C++ the :: is called the Scope Resolution Operator. It makes it clear to which namespace or class a symbol belongs.

    0 讨论(0)
  • 2021-02-07 03:53

    AirlineTicket is like a namespace for your class. You have to use it in the implementation of the constructor.

    0 讨论(0)
提交回复
热议问题