Almost all operators can be overloaded, including:
All the arithmetic, logical, comparison, equality, assignment, and bit operators.
In addition, the autoincrement and autodecrement operators (
can have distinct prefix and postfix meanings.
The subscript or index operator
 and the function call
The class pointer operator (
->) and the member pointer
selector operator (
The assignment, function call, subscripting, and class pointer operators can be overloaded only by nonstatic member functions.