Open In App

How to Overload == Operator in C++?

Improve
Improve
Improve
Like Article
Like
Save Article
Save
Share
Report issue
Report

A class in C++ is the building block that leads to Object-Oriented programming. Class is a user-defined data type, which holds its own data members and member functions, which can be accessed and used by creating an instance of that class.

The overloading of operators is a polymorphism that occurs at compile-time. A special meaning can be given to an existing operator in C++ without changing its meaning.

Syntax:

class sampleClass
{
   public:
   returntype operator operatoToBeOverloaded ( [arguments required] )
   {
       //sampleCodeHere
   }
};

Except for a few that cannot be overloaded, almost all operators can be overloaded. These operators are as follows: 

== is a comparison operator that returns a true or false Boolean value. It checks if the two operands on the operator’s left and right sides are equal.

Consider a class Car having the following data members:

class Class{
 private:
   string name;
   int cost;
};

In this class, we can use the == operator to determine whether the two worker’s objects are equivalent.

bool operator == (const Car &c)
{
   if (name == c.name && cost == c.cost)
      return true;
  return false;
}

C++




// C++ Program to overload == operator
#include<iostream>
#include<string>
using namespace std;
  
class Car{
  private:
    string name;
    int cost;
    public:
        Car(string n, int c){
            name=n;
            cost=c;
        }
        bool operator == (const Car &c){
            if (name == c.name && cost == c.cost)
                return true;
            return false;
        }
};
int main(){
    Car car1 ("Santro",500000);
    Car car2 ("Safari",1000000);
    if (car1 == car2)
        cout<<"Equivalent"<<endl;
    else
        cout<<"Not Equivalent"<<endl;
}


Output

Not Equivalent

Last Updated : 27 Oct, 2022
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads