In this chapter we shall see how to overload binary operators [+, -, *, /].
Example:
#include <iostream>
// for more tutorials check www.prodevelopertutorial.com
using namespace std;
class MyClass
{
private:
int num_1;
int num_2;
public:
MyClass(int a, int b): num_1(a), num_2(b){ }
friend MyClass operator + (MyClass &obj1, MyClass &obj2);
friend MyClass operator - (MyClass &obj1, MyClass &obj2);
friend MyClass operator / (MyClass &obj1, MyClass &obj2);
friend MyClass operator * (MyClass &obj1, MyClass &obj2);
void display()
{
cout<<"The value of num_1 "<<num_1<<" The value of num_2 "<<num_2<<endl;
}
};
MyClass operator + (MyClass &obj1, MyClass &obj2)
{
return MyClass(obj1.num_1+obj2.num_1, obj1.num_2+obj2.num_2);
}
MyClass operator / (MyClass &obj1, MyClass &obj2)
{
return MyClass(obj1.num_1/obj2.num_1, obj1.num_2/obj2.num_2);
}
MyClass operator * (MyClass &obj1, MyClass &obj2)
{
return MyClass(obj1.num_1*obj2.num_1, obj1.num_2*obj2.num_2);
}
MyClass operator - (MyClass &obj1, MyClass &obj2)
{
return MyClass(obj1.num_1-obj2.num_1, obj1.num_2-obj2.num_2);
}
int main(void)
{
MyClass obj_1(10, 20);
MyClass obj_2(30, 40);
MyClass obj_3 = obj_1 + obj_2;
obj_3.display();
MyClass obj_4 = obj_1 - obj_2;
obj_4.display();
MyClass obj_5 = obj_1 / obj_2;
obj_5.display();
MyClass obj_6 = obj_1 * obj_2;
obj_6.display();
}
Output:
The value of num_1 40 The value of num_2 60
The value of num_1 -20 The value of num_2 -20
The value of num_1 0 The value of num_2 0
The value of num_1 300 The value of num_2 800