Overload means to use a standard symbol or name, but the action is type or class dependent.
The advantage of overloading operators is that it allows you to define the action of operators on your class and you can program with your class much like you do with the standard variable types. You are creating your own language for operations on your class. An operator is a really a function where a symbol is used rather than a function name. Operators can be defined inside the class definition or outside the class definition. For clarity, it is preferable to overload operators inside the class definition.