Binary operator overloading in C++

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
Write a Comment

Leave a Comment

Your email address will not be published. Required fields are marked *