0% found this document useful (0 votes)
62 views

Operator Overloading

Operator overloading allows predefined operators like +, -, etc. to operate on user-defined types like classes. It involves defining operator functions that are called when the operator is used on instances of the class. Operators can be overloaded as binary operators which take two operands, unary operators which take a single operand, or as friend functions for binary operators.

Uploaded by

manan hude
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
62 views

Operator Overloading

Operator overloading allows predefined operators like +, -, etc. to operate on user-defined types like classes. It involves defining operator functions that are called when the operator is used on instances of the class. Operators can be overloaded as binary operators which take two operands, unary operators which take a single operand, or as friend functions for binary operators.

Uploaded by

manan hude
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 16

OPERATOR

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:

HERE WE WILL TAKE OUTPUT FROM C1 AND C2: RESULT = C1 + C2;

TRADITIONALLY: RESULT = C1.ADDNUMBERS(C2)


DEFINITION OF OPERATOR OVERLOADING

• IT IS PROCESS OF USING OPERATOR INSTEAD OF FUNCTION TO DO A PARTICULAR


WORK
• OPERATOR OVERLOADING ALLOWS C/C++ OPERATORS TO HAVE USER-DEFINED
MEANINGS ON USER-DEFINED TYPES (CLASSES). 
• ALSO, ADDING SPECIAL TASK TO OPEARATOR
• WE CAN USE ONLY EXISTING OPERATORS I.E. WE CANNOT MAKE NEW
OPERATORS BY OPERATOR OVERLOADING
CONCEPT OF OPERATOR OVERLOADING

• USING AN OPERATOR, INSTEAD OF FUNCTION , TO DO PARTICULAR TASK


• GENERALLY OPERATORS ARE DESIGNED TO WORK WITH PRE-DEFINED
DATATYPE(INT,FLOAT ETC.)
• IN ORDER TO WORK WITH USER DEFINED DATATYPE , OPERATORS ARE
OVERLOADED
• IN OPERATOR OVERLOADING, LEFT SIDE VALUE SHOULD BE OF OBJECT
OF SAME CLASS
OPERATOR OVERLOADING

WE CAN OVERLOAD ALL C++ OPERATORS EXCEPT:


A. CLASS MEMBER ACCESS OPERATOR(.)
B. SCOPE RESOLUTION OPERATOR(::)
C. SIZE OPERATOR(SIZEOF)
D. CONDITIONAL OPERATOR(?:)
SYNTAX FOR C++ OPERATOR OVERLOADING

• TO OVERLOAD AN OPERATOR, WE USE A SPECIAL OPERATOR FUNCTION.

class classname {

    ... .. ...

    public

       returntype operator symbol (arguments) {

           ... .. ...

       } 

    ... .. ...

};
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

OPERATOR OVERLOADING CAN BE DONE BY USING THREE APPROACHES, THEY


ARE
1. OVERLOADING BINARY OPERATOR.
2. OVERLOADING UNARY OPERATOR.
3. OVERLOADING BINARY OPERATOR USING A FRIEND FUNCTION.
OPERATOR OVERLOADING IN BINARY
OPERATORS
• BINARY OPERATORS WORK ON TWO OPERANDS. FOR EXAMPLE,

• RESULT = NUM + 9;

• HERE, + IS A BINARY OPERATOR THAT WORKS ON THE OPERANDS NUM AND 9.

• WHEN WE OVERLOAD THE BINARY OPERATOR FOR USER-DEFINED TYPES BY USING THE
CODE:

• OBJ3 = OBJ1 + OBJ2;

• 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.

• FRIEND FUNCTION USING OPERATOR OVERLOADING OFFERS BETTER


FLEXIBILITY TO THE CLASS.
• THESE FUNCTIONS ARE NOT A MEMBERS OF THE CLASS AND THEY DO NOT
HAVE 'THIS' POINTER.
• WHEN YOU OVERLOAD A UNARY OPERATOR YOU HAVE TO PASS ONE ARGUMENT.
• WHEN YOU OVERLOAD A BINARY OPERATOR YOU HAVE TO PASS TWO
ARGUMENTS.
• FRIEND FUNCTION CAN ACCESS PRIVATE MEMBERS OF A CLASS DIRECTLY.
OVERLOADING BINARY OPERATOR USING A
FRIEND FUNCTION EXAMPLE
OVERLOADING BINARY OPERATOR USING A
FRIEND FUNCTION EXAMPLE

Output:

You might also like