Download presentation
Presentation is loading. Please wait.
Published byAmy Dering Modified over 9 years ago
1
Introduction to Programming Lecture 31
2
Operator Overloading
3
Today’s Lecture – Operators – Syntax for overloading operators operators – How to overload operators ?
4
Complex Number
5
complex c1, c2, x ; x = cadd ( c1, c2 ) ;
6
x = cadd ( cadd ( a, b ), c ) ;
7
Operators The complete list of C++ operators that are overloaded is as follows The complete list of C++ operators that are overloaded is as follows + - * / % ^ & | ~ ! = += -= *= /= %= ^= &= |= > >>= > >>= <<= = = != <= >= && | | ++ - - -> *, -> [ ] ( ) new new[ ] delete delete [ ]
8
a + b
9
Date.day
10
Example Return_type operator + (Argument_List) { // Body of function }
11
a * b + c ;
12
x = y + z ;
13
Example class Complex { private : double real ; double imag ; public : // member function }
14
Example Complex c1, c2 ; c1 = c2 ; Is equivalent to c1.real = c2.real ; c1.imag = c2.imag ;
15
Complex operator + ( Argument_ list ) ;
16
Complex Complex :: operator + ( Complex c ) { Complex temp ; temp.real = real + c.real ; temp.imag = imag + c.imag ; return temp ; } Example
17
Complex x, y, z ; z = x + y ;
18
z = x + d ; Complex Number Double Precision Number
19
Complex operator + ( double d ) ;
20
z = x + y ; z = x + d ;
21
Complex Complex :: operator + ( Complex c ) { Complex temp ; temp.real = real + d ; temp.imag = imag ; return temp ; } Example
22
z = d + x ; Complex Number Double Precision Number Complex Number
23
Friend Function
24
User Defined Data types
25
<<
26
Example main ( ) { Complex c1 ( 1, 2 ), c2 ( 3, 4 ), c3 ; c3 = c1 + c2 ; c1.display ( ) ; c2.display ( ) ; c3.display ( ) ; }
27
Complex operator + ( Complex & c ) ; C is a reference to a complex number
28
i += 2 ; i = i + 2 ;
29
c1 += c2 ;
30
Example Complex operator += ( Complex & c )
31
Example Complex Complex :: operator += ( Complex & c ) { real += c.real ; imag += c.imag ; }
32
Complex operator + ( Complex & c1, Complex & c2 ) { Complex temp ; temp.real = c1.getreal ( ) + c2.getreal ( ) ; temp.imag = c1.getimag ( ) + c2.getimag ( ) ; return temp ; } Example
33
Example class String { private : private : char s [ 30 ] ; char s [ 30 ] ; public : public : String ( ) String ( ) { strcpy ( s, "" ) ; strcpy ( s, "" ) ; } // Declaration (prototype) of overloaded sum operator // Declaration (prototype) of overloaded sum operator String operator + ( String c ) ; String operator + ( String c ) ; } ;
34
Example String String :: operator + ( String c ) { String temp ; String temp ; strcpy ( temp.s, "" ) ; strcpy ( temp.s, "" ) ; strcat ( temp.s, s ) ; strcat ( temp.s, s ) ; strcat ( temp.s, c.s ) ; strcat ( temp.s, c.s ) ; return temp ; return temp ;}
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.