Operator overloading is the process by which already existing operators like +,-,= etc are given different meanings. For example, the arithmetic operator +, which adds two numbers can be used to add two objects. That is, the + operator can act on the abstract data types in the same way as on the built-in data types. Thus the + operator is overloaded with a different meaning besides the existing meaning. When an operator is overloaded, the original meaning is not lost.
1. Process by which existing operators are given different meanings.
2. Operators made to act on abstract data types in same way as on built-in data types original meaning not lost on overloading the operator.
3. Operators which cannot be overloaded are:
- scope resolution operator
- new
- size of
- conditional operator (?:)
- class member operator (.")


