pickzy.com

C  |  C++  |  Objective-C  |  VC++  |  Win32  |  MFC  |  Java  |  Php  |  Delphi  |  Visual Basic  |  .Net  |  Networking  |  General  |  Games  |  Jobs  |  Javascript  |  




Menu

pickSourcecode.com


        

 




 

Cpp > Articles

 

Cpp - Operator Overloading

Operator Overloading

type operator operator-symbol ( parameter-list )

The operator keyword declares a function specifying what operator-symbol means
whenapplied to instances of a class. This gives the operator more than one meaning, 
or "overloads" it. The compiler distinguishes between the different meanings of an
 operator by examining the types of its operands.

You can redefine the function of most built-in operators globally or on a class-by-class
 basis. Overloaded operators are implemented as functions.

The name of an overloaded operator is operatorx, where x is the operator as it appears in
 Table 12.2. For example, to overload the addition operator, you define a function called
 operator+. Similarly, to overload the addition/assignment operator, +=, define a 
function called operator+=.

Although overloaded operators are usually called implicitly by the compiler when they are
 encountered in code, they can be invoked explicitly the same way as any member or 
nonmember function is called:


Po
int pt;
pt.operator+( 3 );  
//  Call  addition  operator  to  add  3  to  pt.

Example


The following example overloads the + operator to add two complex numbers and returns the

 result.


#include <iostream.h>

class Complex

{

public:

  Complex( double r, double i ) : re(r), im(i) {}

  Complex operator+( Complex &other );

  
void Display( ) {  cout << re << ", " << im << endl; }
private:

  double re, im;

};


//  Operator  overloaded  using  a  member  function
Complex Complex::operator+( Complex &other )

{

return Complex( re + other.re, im + other.im );

}


void main()
{

  Complex a = Complex( 1.2, 3.4 );

  Complex b = Complex( 5.6, 7.8 );

  Complex c = Complex( 0.0, 0.0 );


  c = a + b;

  c.Display();

}




 
Privacy Policy | About Us