What is "overload"
Overloading an operator means resetting its symbol, so that it also applies to user-defined data types such as classes and structures. In other words, it allows defining two or more functions with the same name, provided that their argument lists are sufficiently different for the calls to be solved. In this situation, when several statements of different functions are specified by a single name in the same scope, it is said that functions that share the same name are overloaded.