Skip to main content

Operator overloading in c++.

Hello friends, in this post today, we learn about what is operator overloading in c++. so lets start...

Operator overloading in c++, operator overloading
Operator overloading 



Operator overloading:-

Operator overloading is compile time polymorphism.

Operator overloading refers to overloading of one operator for many different purpose.

It is one of the powerful and fascinating features of the C++ which give additional meaning to built-in standard operators like +, -, *, /, >, <, < =, > = etc.

 For example, the binary + can be used to add two integer numbers, two float numbers, two structures variables, two union variables or two class objects.

• The operator overloading provides mechanism to perform operations on user defined data type.

• When an operator is overloaded with multiple jobs, it is known as operator overloading.

• We can give special meaning to any operators in which program it is implemented.


Rules for operator overloading:-

1. Only existing operator can be overloaded.

2. Any overloaded operator function must have at least one operand which is user defined type. All of the operands cannot be of basic types. If this is the case than function must be friend function of some class.

3. We cannot change the basic meaning and syntax of an operator.

4. We cannot use friend function to overload certain operators. However member function can be used to overload them.

5. Unary operators, overloaded by means of a member function, take no explicit argument s and return no explicit value, but, those overloaded by means of a friend function, take one reference argument.

6. Binary operators overloaded through a member function take one explicit argument and those which are overloaded through a friend function take two explicit arguments.

7. When using binary operators overloaded through a member function, the left hand operand must be an object of the relevant class.

8. We cannot overload following operators.

Operators Name

Dot(.) and Pointer to member operator(.* )

:: Scope Resolution Operator

sizeof() The Size of Operator

?: Conditional Operator


Syntax:-

return_type operator operator (arguments)
{
  Statements; 
  Statements; 
Statements;
}


Example for Unary Operator Overloading

#include <iostream> 
using namespace std

class complex
{
   private:
   float realimag

   public:
   complex(float afloat b) // constructor
   {
      reala;
      imag =b;
   }

   void display()
   {
     cout<<"Addition of complex number:"<<real<<"+"<<imag<<"i"<<endl
   }

void operator +(complex c) //Binary Member function
{
real=real+c.real;
  imag=imag+c.imag;
}
};

int main()
{
 complex x(5,4); 
 complex y(3,6);
 x + y; // Call Binary Member Function 
 x.display();
 return 0;
}

Output:

Addition of complex number:8+10i



I hope that whatever information I have given in this post today, you have liked it and you have understood it.so keep learning and wait for the next post that will help you to increase your knowledge with something new information .


Thank you so much for reading. And take care about yourself and your family.



Comments

Popular posts from this blog

What is reference variable in c++

Hello friends, in this post today, we learn about What is reference variable in c++. and what is its major use  in c++ . so lets start... Reference variable in c++ Reference variable:- Reference variable is a new concept in C++. A reference variable is a variable which provides an alias (alternative name) for a previously defined variable or any constant. Reference variable is an internal pointer. Declaration of reference variable is preceded with & symbol ( but do not read it as ‘address of ‘). Reference variable must be initialized during declaration. It can be initialized with already declared variables only. Reference variables can not be updated. This mechanism is useful in object oriented programming because it permits the manipulation of objects by reference, and eliminates the copying of object parameters back and forth. It is also important to note that references can be created not only for built-in data types but also for user- defined data types. Syntax: Data_...

'this' pointer in c++

Hello friends, i n this post today, we learn about 'this' pointer in c++ and what is the  use  of   'this'  pointer .  so lets start... this pointer in c++ 'this' pointer:- The this pointer is a special pointer which is a built-in pointer. and  'this' is a keyword. It stores the  address of current object in context. That is the current object which can be referred using this  pointer anywhere in the class. Important Points About this Pointer:- The this pointer can be used only inside the class i.e., only  inside the member function of the class and cannot be used outside and  static member of the class. The object’s address is available from within the member function as the this pointer. It  is legal, through unnecessary, to use this pointer when referring to members of the class. The  expression (*this) is commonly used to return the current object from a member function. this is a local object pointer in every instanc...

Destructor in c++

Hello friends, in this post today, we learn about what is Destructor in c++ and why we use Destructor in c++. so lets start... Destructor in c++ Destructor:- Destructor is a special and  instance member function of a class. Destructor is a member function whose name must be same as class name but is preceded by a tilde sign (~). The purpose of destructor is to destroy the object when it is no longer needed or goes out of scope. It should be defined to release resources allocated to an object. Features of Destructor:- Destructor should be declared in the public section. Destructor can never be static. Once a destructor is called for a object, the object will no longer be available for the  future reference. Destructor never  takes any argument nor it returns any value nor it has return type (no overloading is possible). Destructor is invoked automatically by the complier when object goes out scope  of the program. There is no explicit or implicit category for a dest...