Operator Overloading

Operators in C++ may be overloaded in the same way that functions are overloaded.  In C, the + (plus) operator is "overloaded" to work for int or float values.  In C++, this concept is extended to include class types.

Notes:
     +    -    *    /    %    ^    &    |
    ~    !    ,    =    <    >    <=   >=
    ++   --   <<   >>   ==   !=   &&   ||
    +=   -+   /=   %=   ^=   &=   |=   *=
    <<=  >>=  []   ()   ->   ->*  new  delete
    
     .         direct member
    .*        direct pointer to member
    ::        scope resolution
    ? :       ternary
    
 A.operator+(B)    if operator+() is a class member function
 operator+(A,B)    if operator+() is a non-class member function