10.6. Overloading Unary Operators
A unary operator for a class can be overloaded as a non-static member function with no arguments or as a non-member function with one argument that must be an object (or a reference to an object) of the class. Member functions that implement overloaded operators must be non-
static so that they can access the non-
static data in each object of the class.