Operator Overloading
Operator Overloading
OVERLOADING
INTRODUCTION
• IN C++, THERE ARE PRE-DEFINED (+,==,-,*,/,++,--)OPERATORS WHICH CAN BE USED FOR
PRE-DEFINED DATATYPES(INT, FLOAT, CHAR ETC.) OPERATION ONLY. WHEN WE ARE
DEFINING CLASS OR MEMBER FUNCTION AND WE WANT TO GIVE OUTPUT ON USER
DEFINE OPERANTS THEN WE HAVE TO USE OPERATOR OVERLOADING
• FOR EXAMPLE, SUPPOSE WE HAVE CREATED THREE OBJECTS C1, C2 AND RESULT FROM A
CLASS NAMED COMPLEX THAT REPRESENTS COMPLEX NUMBERS.
• SINCE OPERATOR OVERLOADING ALLOWS US TO DO OPERATIONS ON USER DEFINED
DATATYPES I.E. CLASSES, WE CAN USE + OPERATOR TO ADD THE COMPLEX NUMBERS OF
C1 AND C2 BY WRITING THE FOLLOWING CODE:
class classname {
... .. ...
public
... .. ...
}
... .. ...
};
SYNTAX FOR C++ OPERATOR OVERLOADING
HERE,
• returntype IS THE RETURN TYPE OF THE FUNCTION.
• operator IS A KEYWORD.
• symbol IS THE OPERATOR WE WANT TO OVERLOAD. LIKE: +, <, -, ++,
ETC.
• arguments IS THE ARGUMENTS PASSED TO THE FUNCTION.
APPROACHES IN OPERATOR OVERLOADING
• RESULT = NUM + 9;
• WHEN WE OVERLOAD THE BINARY OPERATOR FOR USER-DEFINED TYPES BY USING THE
CODE:
• THE OPERATOR FUNCTION IS CALLED USING THE OBJ1 OBJECT AND OBJ2 IS PASSED AS AN
ARGUMENT TO THE FUNCTION.
BINARY OPERATOR OVERLOADING EXAMPLE 1
Output:
BINARY OPERATOR OVERLOADING EXAMPLE 2
Output:
OVERLOADING UNARY OPERATOR.
• THE UNARY OPERATORS OPERATE ON A SINGLE OPERAND AND FOLLOWING ARE THE
EXAMPLES OF UNARY OPERATORS −
• THE INCREMENT (++) AND DECREMENT (--) OPERATORS.
• THE UNARY MINUS (-) OPERATOR.
• THE LOGICAL NOT (!) OPERATOR.
• THE UNARY OPERATORS OPERATE ON THE OBJECT FOR WHICH THEY WERE CALLED AND
NORMALLY, THIS OPERATOR APPEARS ON THE LEFT SIDE OF THE OBJECT, AS IN !OBJ, -OBJ,
AND ++OBJ BUT SOMETIME THEY CAN BE USED AS POSTFIX AS WELL LIKE OBJ++ OR OBJ--.
UNARY OPERATOR OVERLOADING EXAMPLE
Output:
OVERLOADING BINARY OPERATOR USING A
FRIEND FUNCTION.
Output: