Download presentation

Presentation is loading. Please wait.

Published byAmy Dering Modified over 2 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

© 2017 SlidePlayer.com Inc.

All rights reserved.

Ads by Google