Operator Overloading
Binary operators have either a single argument if they are
overloaded as members (the first operand corresponds to
the implicit this pointer and is therefore an object of the
class in which it is defined)
Or, binary operators have two operands if they are
overloaded as non-members
(where there is no implicit first operand)
In this latter case, it is typical to declare the operators as
friends of the class(es) they apply to -- so that they can
have access privileges to the private/protected data
members without going thru the public client interface.