Presentation is loading. Please wait.

Presentation is loading. Please wait.

Introduction to Programming Lecture 31. Operator Overloading.

Similar presentations


Presentation on theme: "Introduction to Programming Lecture 31. Operator Overloading."— Presentation transcript:

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 ;}


Download ppt "Introduction to Programming Lecture 31. Operator Overloading."

Similar presentations


Ads by Google