nWe overload the << and >> operators for
insertion into the output
stream and extraction from the input stream.
nThe iostream library
overloads these operators for the built-in
data types, but is not equipped to handle new data types that we create. Therefore, in order for extraction and insertion operators to be used with objects of our classes, we must overload these operators
ourselves.
nThe extraction and
insertion operators must be overloaded
as non-members because the first operand is an object of type istream or ostream and not an
object of one of our classes.