Operator overloading

 



Operator overloading 

/////////////////////


Operator overloading is a compile-time polymorphism in which the operator is overloaded to provide the special meaning to the user-defined data type.

>Operator overloading is used to overload or redefines most of the operators available in C++. 

>It is used to perform the operation on the user-defined data type. For example, C++ provides the ability to add the variables of the user-defined data type that is applied to the built-in data types.


The advantage of Operators overloading is to perform different operations on the same operand.


Operator that cannot be overloaded are as follows:


Scope operator (::)

Sizeof

member selector(.)

member pointer selector(*)

ternary operator(?:)


=======================

Syntax of Operator Overloading

return_type class_name  : : operator op(argument_list)  

{  

     // body of the function.  

}  

===========================

https://www.javatpoint.com/cpp-overloading

========================


  

void A :: operator+(A a)  

{  

     

    int m = x+a.x;  

    cout<<"The result of the addition of two objects is : "<<m;  

  


==========================

Rules for Operator Overloading

Existing operators can only be overloaded, but the new operators cannot be overloaded.

The overloaded operator contains atleast one operand of the user-defined data type.

We cannot use friend function to overload certain operators. However, the member function can be used to overload those operators.

When unary operators are overloaded through a member function take no explicit arguments, but, if they are overloaded by a friend function, takes one argument.

When binary operators are overloaded through a member function takes one explicit argument, and if they are overloaded through a friend function takes two explicit arguments.




```````````````````````````````

Let's see the simple example of operator overloading in C++. In this example, void operator ++ () operator function is defined (inside Test class).




#include <iostream>    

using namespace std;    

class Test    

{    

   private:    

      int num;    

   public:    

       Test(): num(8){}    

       void operator ++()         {     

          num = num+2;     

       }    

       void Print() {     

           cout<<"The Count is: "<<num;     

       }    

};    

int main()    

{    

    Test tt;    

    ++tt;  // calling of a function "void operator ++()"    

    tt.Print();    

    return 0;    

}    

Output:


The Count is: 10


`````````````````````````````````````````````````````````

// program to overload the binary operators.


#include <iostream>  

using namespace std;  

class A  

{  

    

    int x;  

      public:  

      A(){}  

    A(int i)  

    {  

       x=i;  

    }  

    void operator+(A);  

    void display();  

};  

  

void A :: operator+(A a)  

{  

     

    int m = x+a.x;  

    cout<<"The result of the addition of two objects is : "<<m;  

  

}  

int main()  

{  

    A a1(5);  

    A a2(4);  

    a1+a2;  

    return 0;  

}  

Output:


The result of the addition of two objects is : 9 



ORRRRRRRRRRRRRRRRRRRRRRRRRRRRRRROOOOOOOOOOORRRRRRRRRRRR


#include <iostream>  

using namespace std;  

class A  

{  

    

    int x;  

      public:  

      A(){}  

    A(int i)  

    {  

       x=i;  

    }  

    //void operator+(A);  

     A  operator+(A a)  

{  

     

    int m = x+a.x;  

    cout<<"The result of the addition of two objects is : "<<m;  

  

    

    

    void display();  

};  

  

 

int main()  

{  

    A a1(5);  

    A a2(4);  

    a1+a2;  

    return 0;  

FFFFFFFFIIIIIIIIIIINNNNNNNNNNNNIIIIIIIIISSSSSSSSHHHHHHHHHHHHHHHH











Comments

Popular posts from this blog

Difference between Structure and Array in C

Mutitreading Notes