What does this symbol mean?
AirlineTicket::AirlineTicket()
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).
:: 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.
In C++ the ::
is called the Scope Resolution Operator. It makes it clear to which namespace or class a symbol belongs.
AirlineTicket is like a namespace for your class. You have to use it in the implementation of the constructor.