340 likes | 352 Views
Introduction to Programming . Lecture 31. Operator Overloading. Today’s Lecture. Operators Syntax for overloading operators How to overload operators ?. Complex Number. complex c1 , c2 , x ; x = cadd ( c1 , c2 ) ;. x = cadd ( cadd ( a , b ) , c ) ;. Operators.
E N D
Introduction to Programming Lecture 31
Today’s Lecture • Operators • Syntax for overloading operators • How to overload operators ?
complex c1 , c2 , x ; x = cadd ( c1 , c2 ) ;
Operators • The complete list of C++ operators that are overloaded is as follows + - * / % ^ & | ~ ! = < > += -= *= /= %= ^= &= |= << >> >>= <<= = = != <= >= && | | ++ - - -> * , -> [ ] ( ) new new[ ] delete delete [ ]
Example Return_type operator + (Argument_List) { // Body of function }
Example class Complex { private : double real ; double imag ; public : // member function }
Example Complex c1 , c2 ; c1 = c2 ; Is equivalent to c1.real = c2.real ; c1.imag = c2.imag ;
Example Complex Complex :: operator + ( Complex c ) { Complex temp ; temp.real = real + c.real ; temp.imag = imag + c.imag ; return temp ; }
z = x + d ; Complex Number Complex Number Double Precision Number
Example Complex Complex :: operator + ( Complex c ) { Complex temp ; temp.real = real + d ; temp.imag = imag ; return temp ; }
z = d + x ; Complex Number Complex Number Double Precision Number
User Defined Data types
Example main ( ) { Complex c1 ( 1 , 2 ) , c2 ( 3 , 4 ) , c3 ; c3 = c1 + c2 ; c1.display ( ) ; c2.display ( ) ; c3.display ( ) ; }
Complex operator + ( Complex & c ) ; C is a reference to a complex number
i += 2 ; i = i + 2 ;
Example Complex operator += ( Complex & c )
Example Complex Complex :: operator += ( Complex & c ) { real += c.real ; imag += c.imag ; }
Example Complex operator + ( Complex & c1 , Complex & c2 ) { Complex temp ; temp.real = c1.getreal ( ) + c2.getreal ( ) ; temp.imag = c1.getimag ( ) + c2.getimag ( ) ; return temp ; }
Example class String { private : char s [ 30 ] ; public : String ( ) { strcpy ( s , "" ) ; } // Declaration (prototype) of overloaded sum operator String operator + ( String c ) ; } ;
Example String String :: operator + ( String c ) { String temp ; strcpy ( temp.s , "" ) ; strcat ( temp.s , s ) ; strcat ( temp.s , c.s ) ; return temp ; }