pointers,virtual functions and polymorphism

5,537 views
5,264 views

Published on

my first presentation pointers,virtual functions and polymorphism,
most basic and simple and short presentation
its just parial overview.

Published in: News & Politics, Technology
0 Comments
6 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
5,537
On SlideShare
0
From Embeds
0
Number of Embeds
29
Actions
Shares
0
Downloads
384
Comments
0
Likes
6
Embeds 0
No embeds

No notes for slide

pointers,virtual functions and polymorphism

  1. 1. Dr. BABASAHEB AMBEDKAR TECHNOLOGICAL UNIVERSITY Presentation onPointers , Virtual Functions and Polymorphism. By , Ruturaj Nalawade Sanjay Bidkar Swapnil Sarwade Under the Guidance of , Mrs . Ladda
  2. 2. POINTERS
  3. 3. INTRODUCTIONPointers are the variables which holds the addresses of other variables.Pointer variables are denoted by „ * ptr ‟Pointers are the derived data types.
  4. 4. INTRODUCTION – CONT.E.g. :={ int i , *j; i= 3; j = &i; cout<<“The value of i is t”<<i<<endl; cout<<“The value of *j is t”<<*j;}Output : :The value of i is 3The value of *j is 3
  5. 5. INTRODUCTION – CONT.E.g. :={ int i , *j; i= 3; j = &i; cout<<“The value of i is t”<<i<<endl; cout<<“The value of *j is t”<<*j; * j}Output : :The value of i is 3The value of *j is 3
  6. 6. Introduction - Cont. How the *j gets the value of i ?int i , *j ;Variable i jNamesValueMemory 65524 65522Address
  7. 7. Introduction - Cont. How the *j gets the value of i ?int i , *j ;i=3;Variable i jNamesValue 3Memory 65524 65522Address
  8. 8. Introduction - Cont. How the *j gets the value of i ?int i , *j ;i=3;j=&i;Variable i jNamesValue 3 65524Memory 65524 65522Address *j refers to the value at address j.
  9. 9. INTRODUCTION – CONT.Pointers are used for memory management and achieving polymorphism.C++ adds the concept ofCONSTANT POINTER & POINTER TO A CONSTANT . :=
  10. 10. INTRODUCTION - CONT.1. Constant Pointer ::Declaration = data type * const pointer
  11. 11. INTRODUCTION - CONT.2. Pointer to a Constant :: data type const * pointer3. const data type * const pointer
  12. 12. POINTERS TO OBJECTS -Pointers can point to an object created by class . Declaration : classname object; classname * pointer; Definition : pointer = & object;
  13. 13. POINTERS TO OBJECTS - CONT.Object pointers are useful in creating objects at run time.We can also use an object pointer to access the public members & member function of an object , by using „->‟ operator and the object pointer .
  14. 14. POINTERS TO OBJECTS –CONT.E.g. pointer -> getdata( );We can also use ( * pointer ) . function( );
  15. 15. THIS POINTERC++ uses keyword „ this ‟ to represent an object that invokes a member function.E.g. The function call A. max( ) will set the pointer this to the address of the object A.E.g. To access private variables inside a member function a=123; or this -> a = 123;
  16. 16. THIS POINTER - APPLICATIONSIn operator overloading using member function we use implicitly this‟ pointer.The another important application of the pointer this is to return the object it points to .
  17. 17. POINTERS TO DERIVED CLASSPointers to objects of a base class are type compatible with pointers to objects of a derived class.A single pointer variable can be made to point to objects belonging to different classes.
  18. 18. POINTERS TO DERIVED CLASS – CONT.e.g. B *cptr; B b; D d; cptr = & b;we can also make cptr to point to the object d as follows: cptr = & d
  19. 19. POINTERS TO DERIVED CLASS – CONT. Base Class Derived ClassPublic:a,b Public / Private /Private / Protected :Protected:c,d e,f,g,h If cptr = & d; cptr a,b
  20. 20. POINTERS TO DERIVED CLASS – CONT.This shows that , although a base pointer can be made to point to any number of derived objects, it can not directly access the members defined by a derived class.To access the members defined by a derived class , cast base pointer to the derived class type.
  21. 21. POINTERS TO DERIVED CLASS – CONT. E.g . Casting dptr -> show ( ) ; ( ( DC * ) bptr ) -> show ( ) ;
  22. 22. VIRTUAL FUNCTIONS
  23. 23. VIRTUAL FUNCTIONThe application of polymorphism is the ability to refer the objects without any regard to their classes.This necessitates the use of a single pointer variable to refer to the objects of different classes.
  24. 24. VIRTUAL FUNCTION – CONT.By making the function virtual in base class C++ determines which function to use at run time based on the type of object pointed to by the base pointer , rather than the type of the pointer.Runtime polymorphism is achieved only when a virtual function is accessed through a pointer to the base class.
  25. 25. VIRTUAL FUNCTIONS - RULES1. The virtual functions must be members of some class.2. They cannot be static members.3. They are accessed by using object pointers.4. A virtual function can be friend of other function.5. A virtual function in a base class must be defined , even though it may not be used.
  26. 26. RULES –CONT.6. We cannot have a virtual constructors, but we can have virtual destructors.7. While a base pointer can point to any type of derived object, the reverse is not true.
  27. 27. RULES –CONT.8. The prototypes of the base class version of a virtual function and all the derived class versions must be identical.9. When a base pointer points to a derived class , incrementing or decrementing it will not make it to point to the next object of the derived class.
  28. 28. RULES –CONT.10.If a virtual function is define in the base class ,it need not be necessarily redefined in the derived class.
  29. 29. POLYMORPHISM
  30. 30. POLYMORPHISM Polymorphism is crucial feature of Object Oriented Programming. Polymorphism simply means one name having multiple forms.
  31. 31. POLYMORPHISM - CONT. “Polymorphism is the genie in OOP who takes instruction from clients and properly interprets their wishes.”– Ira Pohl, “Object Oriented Programming using C++”.
  32. 32. POLYMORPHISM – CONT.Definition: Polymorphism is the ability to create a variable, a function or an object that has more than one form.
  33. 33. EXAMPLE:For example: The + (plus) operator in C++: 4+5 <-- Integer addition 3.14 + 2.0 <-- Floating point addition s1 + "bar" <-- String concatenation!
  34. 34. TYPES OF POLYMORPHISM Compile-time Run-time Polymorphism Polymorphism
  35. 35. TYPES OF POLYMORPHISM In compile time polymorphism, compiler is able to select the appropriate function a particular call at the compile time. In run time polymorphism, an appropriate member function is selected while the program is running.
  36. 36. BENEFITS OF POLYMORPHISM Simplicity:This makes your code easier for you to write and easier for others to understand. Extensibility:Polymorphism design and implements system that are more extensible.
  37. 37. REFERENCES :Let us C++ – by Yeshwant Kanetkar.Object Oriented Programming with C++ –by E . BALAGURUSAMY.Internet.
  38. 38. THANK YOU !!

×