Today we will look at how to overload operators. The primary use of this is to define comparisons for types in ordered containers, to define the stream extraction operator for reading/writing objects from streams, and to define functors.