+ 6

Overloading binary operators

What is binary operator overloading and how does it take place in detail?

22nd Jan 2018, 1:00 AM
Haitham Alhad Hyder
Haitham Alhad Hyder - avatar
5 Answers
+ 4
https://code.sololearn.com/cd1zwGCBNd1z/?ref=app https://code.sololearn.com/cd9dd83t48MU/?ref=app please read both codes , difference is in where the overloaded function declared. According to the place of declaration number of parameters change. as it is binary operator , there must be two operands. //declaration inside class it becomes member function of class and one operand is that object on which operator function is invoked, we need only one parameter. //declaration outside class we need to parameters to function
22nd Jan 2018, 1:30 AM
code learner
code learner - avatar
22nd Jan 2018, 2:37 AM
code learner
code learner - avatar
+ 3
In object oriented programming, operator overloading is more just telling the program what to do when adding, subtracting, multiplying, etc. classes. In this example for Python, I created a class named add that has 2 functions. The first one is called when the object is created. It sets one variable, x. The other function is __add__, which is an operator overloader (or whatever they are called) which defines what to do when the class is added to itself. What it does it adds the variable x from that same class, being referenced by the keyword self, to the variable x in the other class, being referenced by the keyword other. class add: def __init__(self,x): self.x = x def __add__(self,other): return self.x + other.x a = add(5) b = add(6) print(a + b) The same thing can also be done with equality testing (ie. ==) or the greater than or less than signs (ie. <, >=)
22nd Jan 2018, 1:36 AM
Faisal
Faisal - avatar
+ 3
//correct me if I am wrong operators are similar to functions int x = 5, y= 10; cout<< x+y; here (+) is binary operator as there are two parameters x and y. now overloading operator means , I can use different data types with binary (+). Here different data types means user defined classes. For example If i have written a class (in above example -> Example) And if i want to add two Example objects using (+) operator I have to overload (+) operator to use on Example data type
22nd Jan 2018, 2:11 AM
code learner
code learner - avatar