CS201-31 - Introduction to Programming Lecture 31 Operator...

Info iconThis preview shows page 1. Sign up to view the full content.

View Full Document Right Arrow Icon
This is the end of the preview. Sign up to access the rest of the document.

Unformatted text preview: 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 The complete list of C++ operators that are overloaded is as follows + ­ * / % ^ & | ~ ! = < > += ­= *= /= %= ^= &= |= << >> >>= <<= = = != <= >= && | | ++ ­ ­ ­> * , ­> [ ] ( ) new new[ ] delete delete [ ] a + b Date.day Example Return_type operator + (Argument_List) { // Body of function } a * b + c ; x = y + z ; class Complex { private : double real ; double imag ; public : // member function } Example Complex c1 , c2 ; c1 = c2 ; Is equivalent to Example c1.real = c2.real ; c1.imag = c2.imag ; Complex operator + ( Argument_ list ) ; Complex Complex :: operator + ( Complex c ) { Complex temp ; temp.real = real + c.real ; temp.imag = imag + c.imag ; return temp ; } Example Complex x , y , z ; z = x + y ; z = x + d ; Complex Number Complex Number Double Precision Number Complex operator + ( double d ) ; z = x + y ; z = x + d ; Example Complex Complex :: operator + ( Complex c ) { Complex temp ; temp.real = real + d ; temp.imag = imag ; return temp ; } z = d + x ; Complex Number Double Precision Number Complex Number Friend Function User Defined Data types << main ( ) { Complex c1 ( 1 , 2 ) , c2 ( 3 , 4 ) , c3 ; c3 = c1 + c2 ; c1.display ( ) ; c2.display ( ) ; c3.display ( ) ; } Example Complex operator + ( Complex & c ) ; C is a reference to a complex number i += 2 ; i = i + 2 ; c1 += c2 ; 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 ; class String { private : char s [ 30 ] ; public : Example String ( ) { strcpy ( s , "" ) ; } // Declaration (prototype) of overloaded sum operator String operator + ( String c ) ; } ; String String :: operator + ( String c ) { String temp ; strcpy ( temp.s , "" ) ; strcat ( temp.s , s ) ; strcat ( temp.s , c.s ) ; return temp ; } Example ...
View Full Document

This note was uploaded on 01/12/2010 for the course CS CS 201 taught by Professor Dr.naveedmalik during the Spring '09 term at Virtual University of Pakistan.

Ask a homework question - tutors are online