Introduction
This extension defines and implements operator overloading for objects.
It allows defining how an object reacts when an operator is used on it.
One example of this is creating a collection type object that has the addition
operator overloaded to allow adding elements to the collection or adding two
collections together.
Another example is creating an enhanced string class that has the multiplication
operator overloaded to allow repeating the string a certain number of times.