c-plus-plus
  1. c-plus-plus-binary-operator-overloading

C++ Programs - Binary Operator Overloading

In C++, operators can be overloaded to work with user-defined types. Binary operator overloading allows operators such as +, -, *, /, %, ==, !=, <, >, <=, and >= to be used with user-defined types in a meaningful way.

Syntax

return_type operator op (parameters) {
    // code
}

Where "op" is the operator to be overloaded, "parameters" are the parameters to the operator, and "return_type" is the type of value returned by the operator.

Example

#include <iostream>
using namespace std;

class Complex {
    private:
        double real, imag;
    public:
        Complex(double r=0, double i=0) : real(r), imag(i) {}
        Complex operator + (Complex const &obj) {
            Complex res;
            res.real = real + obj.real;
            res.imag = imag + obj.imag;
            return res;
        }
        void print() {
            cout << real << " + i" << imag << endl;
        }
};

int main() {
    Complex c1(3.5, 2.5), c2(2.5, 1.5);
    Complex c3 = c1 + c2;
    c3.print();
    return 0;
}

Output

6 + i4

Explanation

In the above example, we have defined a class called "Complex" which represents a complex number. We have overloaded the + operator to work with Complex objects. We create two Complex objects, c1 and c2, and add them together using the + operator. The resulting complex number is stored in c3 and then printed to the console.

Use

Binary operator overloading is used to provide a more natural and convenient syntax for performing operations on user-defined types. It allows operators to be used with user-defined types in the same way as they are used with built-in types. For example, we can use the + operator to add two Complex objects together, just as we would use it to add two integers together.

Important Points

  • Binary operator overloading allows operators such as +, -, *, /, %, ==, !=, <, >, <=, and >= to be used with user-defined types.
  • Overloading operators can make code more readable and easier to understand.
  • Overloading operators can lead to unexpected behavior if not done carefully.

Summary

In summary, binary operator overloading is an important feature of C++ that allows operators to be used with user-defined types in a meaningful way. It can make code more readable and easier to understand, but it should be used with care to avoid unexpected behavior.

Published on: