Retain Meaning
Overloading operators have to perform operations same to those defined for primitive/basic datatypes. The operator + could be overloaded to perform subtraction; operator * could be overloaded to perform division operation. Moreover, such definitions should be prevented to retain the initiative meaning of the operators. For instance, the overloaded operator + () function operating on user-defined data-items must retain a meaning same to further. An operator + could perform the union operation on set data type, concatenation on string data type, and many more.