SlideShare a Scribd company logo
Dr. BABASAHEB AMBEDKAR TECHNOLOGICAL UNIVERSITY
Presentation on
Pointers , Virtual Functions and Polymorphism.
By ,
Ruturaj Nalawade
Sanjay Bidkar
Swapnil Sarwade
Under the Guidance of ,
Mrs . Ladda
POINTERS
INTRODUCTION
Pointers are the variables which
holds the addresses of other
variables.
Pointer variables are denoted by
„ * ptr ‟
Pointers are the derived data types.
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 3
The value of *j is 3
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 3
The value of *j is 3
* j
Introduction - Cont.
 How the *j gets the value of i ?
int i , *j ;
Variable
Names
i j
Value
Memory
Address
65524 65522
Introduction - Cont.
 How the *j gets the value of i ?
int i , *j ;
i = 3 ;
Variable
Names
i j
Value
Memory
Address
65524 65522
3
Introduction - Cont.
 How the *j gets the value of i ?
int i , *j ;
i = 3 ;
j = & i ;
Variable
Names
i j
Value 3
Memory
Address
65524 65522
65524
*j refers to the value at address j.
INTRODUCTION – CONT.
Pointers are used for memory management and
achieving polymorphism.
C++ adds the concept of
CONSTANT POINTER
& POINTER TO A CONSTANT . :=
INTRODUCTION - CONT.
1. Constant Pointer ::
Declaration =
data type * const pointer
2. Pointer to a Constant ::
data type const * pointer
3. const data type * const pointer
INTRODUCTION - CONT.
POINTERS TO OBJECTS -
Pointers can point to an object created by
class .
Declaration : classname object;
classname * pointer;
Definition : pointer = & object;
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 .
POINTERS TO OBJECTS –CONT.
E.g.
pointer -> getdata( );
We can also use
( * pointer ) . function( );
THIS POINTER
C++ 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;
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 .
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.
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
POINTERS TO DERIVED CLASS – CONT.
Base Class
Public:
a , b
Private /
Protected:
c , d
Derived Class
Public / Private /
Protected :
e , f , g , h
If cptr = & d;
cptr a , b
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.
POINTERS TO DERIVED CLASS – CONT.
 E.g . Casting
dptr -> show ( ) ;
( ( DC * ) bptr ) -> show ( ) ;
VIRTUAL FUNCTIONS
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.
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.
VIRTUAL FUNCTIONS - RULES
1. 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.
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.
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.
RULES –CONT.
10.If a virtual function is define in the base
class ,it need not be necessarily redefined
in the derived class.
POLYMORPHISM
POLYMORPHISM
 Polymorphism is crucial feature of Object
Oriented Programming.
 Polymorphism simply means one name
having multiple forms.
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++”.
POLYMORPHISM – CONT.
Definition:
Polymorphism is the ability to create a
variable, a function or an object that has
more than one form.
EXAMPLE:
For example:
The + (plus) operator in C++:
4 + 5 <-- Integer addition
3.14 + 2.0 <-- Floating point addition
s1 + "bar" <-- String concatenation!
TYPES OF POLYMORPHISM
Compile-time
Polymorphism
Run-time
Polymorphism
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.
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.
REFERENCES :
Let us C++
– by Yeshwant Kanetkar.
Object Oriented Programming with C++
–by E . BALAGURUSAMY.
Internet.
THANK YOU !!

More Related Content

PPTX
polymorphism
PPSX
Polymorphism
PPTX
polymorphism ppt
PPT
Polymorphism in c++ ppt (Powerpoint) | Polymorphism in c++ with example ppt |...
PPTX
Polymorphism 140527082302-phpapp01
PPTX
Dynamic Polymorphism in C++
PPTX
Polymorphism
PPTX
Polymorphism and its types
polymorphism
Polymorphism
polymorphism ppt
Polymorphism in c++ ppt (Powerpoint) | Polymorphism in c++ with example ppt |...
Polymorphism 140527082302-phpapp01
Dynamic Polymorphism in C++
Polymorphism
Polymorphism and its types

What's hot (20)

PPTX
Polymorphism
PPTX
Polymorphism
PPTX
Virtual function complete By Abdul Wahab (moon sheikh)
PPTX
Polymorphism in C++
PPT
Static and Dynamic polymorphism in C++
PPTX
polymorphism and virtual function
PPTX
Polymorphism Using C++
PDF
Object-Oriented Polymorphism Unleashed
PDF
Polymorphism
PDF
Polymorphism in oop
PPT
C by balaguruswami - e.balagurusamy
PPTX
Polymorphism
PPTX
C++ Object Oriented Programming
PPT
Polymorphism
PPTX
OOP - Polymorphism
PDF
Top C Language Interview Questions and Answer
PPT
C++ Interview Questions
PPT
JAVA Polymorphism
PPT
C++ polymorphism
PDF
2nd puc computer science chapter 8 function overloading
Polymorphism
Polymorphism
Virtual function complete By Abdul Wahab (moon sheikh)
Polymorphism in C++
Static and Dynamic polymorphism in C++
polymorphism and virtual function
Polymorphism Using C++
Object-Oriented Polymorphism Unleashed
Polymorphism
Polymorphism in oop
C by balaguruswami - e.balagurusamy
Polymorphism
C++ Object Oriented Programming
Polymorphism
OOP - Polymorphism
Top C Language Interview Questions and Answer
C++ Interview Questions
JAVA Polymorphism
C++ polymorphism
2nd puc computer science chapter 8 function overloading
Ad

Similar to Polymorphism (20)

PPTX
pointers,virtual functions and polymorphism
PPTX
6be10b153306cc41e65403247a14a4dba5f9186aCHAPTER 2_POINTERS, VIRTUAL FUNCTIONS...
PPTX
pointer, virtual function and polymorphism
PPTX
Pointers, virtual function and polymorphism
DOCX
C questions
PPT
Virtual Function and Polymorphism.ppt
PDF
22 scheme OOPs with C++ BCS306B_module2.pdfmodule2.pdf
DOCX
New microsoft office word document (2)
PPT
pointers, virtual functions and polymorphisms in c++ || in cpp
PPTX
Lecture 3, c++(complete reference,herbet sheidt)chapter-13
PPTX
Pointers,virtual functions and polymorphism cpp
PDF
polymorphism in c++ with Full Explanation.
PPTX
C++ Class & object pointer in c++ programming language
PDF
polymorphism for b.tech iii year students
PPT
Polymorphism in C++ for beginners reference
PDF
Functions in C++
PDF
Polymorphism and Type Conversion.pdf pot
PPTX
Data structure and Algorithms (C++).pptx
PDF
C++ Interview Question And Answer
PDF
C++ questions And Answer
pointers,virtual functions and polymorphism
6be10b153306cc41e65403247a14a4dba5f9186aCHAPTER 2_POINTERS, VIRTUAL FUNCTIONS...
pointer, virtual function and polymorphism
Pointers, virtual function and polymorphism
C questions
Virtual Function and Polymorphism.ppt
22 scheme OOPs with C++ BCS306B_module2.pdfmodule2.pdf
New microsoft office word document (2)
pointers, virtual functions and polymorphisms in c++ || in cpp
Lecture 3, c++(complete reference,herbet sheidt)chapter-13
Pointers,virtual functions and polymorphism cpp
polymorphism in c++ with Full Explanation.
C++ Class & object pointer in c++ programming language
polymorphism for b.tech iii year students
Polymorphism in C++ for beginners reference
Functions in C++
Polymorphism and Type Conversion.pdf pot
Data structure and Algorithms (C++).pptx
C++ Interview Question And Answer
C++ questions And Answer
Ad

Recently uploaded (20)

PDF
A GUIDE TO GENETICS FOR UNDERGRADUATE MEDICAL STUDENTS
PDF
medical_surgical_nursing_10th_edition_ignatavicius_TEST_BANK_pdf.pdf
DOC
Soft-furnishing-By-Architect-A.F.M.Mohiuddin-Akhand.doc
PPTX
UV-Visible spectroscopy..pptx UV-Visible Spectroscopy – Electronic Transition...
PDF
RMMM.pdf make it easy to upload and study
PPTX
Orientation - ARALprogram of Deped to the Parents.pptx
PDF
RTP_AR_KS1_Tutor's Guide_English [FOR REPRODUCTION].pdf
PDF
Practical Manual AGRO-233 Principles and Practices of Natural Farming
PPTX
Lesson notes of climatology university.
PDF
Paper A Mock Exam 9_ Attempt review.pdf.
PDF
Supply Chain Operations Speaking Notes -ICLT Program
PDF
Weekly quiz Compilation Jan -July 25.pdf
PPTX
Radiologic_Anatomy_of_the_Brachial_plexus [final].pptx
PPTX
Introduction to Building Materials
PDF
LNK 2025 (2).pdf MWEHEHEHEHEHEHEHEHEHEHE
PDF
Complications of Minimal Access Surgery at WLH
PPTX
Chinmaya Tiranga Azadi Quiz (Class 7-8 )
PDF
OBE - B.A.(HON'S) IN INTERIOR ARCHITECTURE -Ar.MOHIUDDIN.pdf
PPTX
UNIT III MENTAL HEALTH NURSING ASSESSMENT
PPTX
Unit 4 Skeletal System.ppt.pptxopresentatiom
A GUIDE TO GENETICS FOR UNDERGRADUATE MEDICAL STUDENTS
medical_surgical_nursing_10th_edition_ignatavicius_TEST_BANK_pdf.pdf
Soft-furnishing-By-Architect-A.F.M.Mohiuddin-Akhand.doc
UV-Visible spectroscopy..pptx UV-Visible Spectroscopy – Electronic Transition...
RMMM.pdf make it easy to upload and study
Orientation - ARALprogram of Deped to the Parents.pptx
RTP_AR_KS1_Tutor's Guide_English [FOR REPRODUCTION].pdf
Practical Manual AGRO-233 Principles and Practices of Natural Farming
Lesson notes of climatology university.
Paper A Mock Exam 9_ Attempt review.pdf.
Supply Chain Operations Speaking Notes -ICLT Program
Weekly quiz Compilation Jan -July 25.pdf
Radiologic_Anatomy_of_the_Brachial_plexus [final].pptx
Introduction to Building Materials
LNK 2025 (2).pdf MWEHEHEHEHEHEHEHEHEHEHE
Complications of Minimal Access Surgery at WLH
Chinmaya Tiranga Azadi Quiz (Class 7-8 )
OBE - B.A.(HON'S) IN INTERIOR ARCHITECTURE -Ar.MOHIUDDIN.pdf
UNIT III MENTAL HEALTH NURSING ASSESSMENT
Unit 4 Skeletal System.ppt.pptxopresentatiom

Polymorphism

  • 1. Dr. BABASAHEB AMBEDKAR TECHNOLOGICAL UNIVERSITY Presentation on Pointers , Virtual Functions and Polymorphism. By , Ruturaj Nalawade Sanjay Bidkar Swapnil Sarwade Under the Guidance of , Mrs . Ladda
  • 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. 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 3 The value of *j is 3
  • 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; } Output : : The value of i is 3 The value of *j is 3 * j
  • 6. Introduction - Cont.  How the *j gets the value of i ? int i , *j ; Variable Names i j Value Memory Address 65524 65522
  • 7. Introduction - Cont.  How the *j gets the value of i ? int i , *j ; i = 3 ; Variable Names i j Value Memory Address 65524 65522 3
  • 8. Introduction - Cont.  How the *j gets the value of i ? int i , *j ; i = 3 ; j = & i ; Variable Names i j Value 3 Memory Address 65524 65522 65524 *j refers to the value at address j.
  • 9. INTRODUCTION – CONT. Pointers are used for memory management and achieving polymorphism. C++ adds the concept of CONSTANT POINTER & POINTER TO A CONSTANT . :=
  • 10. INTRODUCTION - CONT. 1. Constant Pointer :: Declaration = data type * const pointer
  • 11. 2. Pointer to a Constant :: data type const * pointer 3. const data type * const pointer INTRODUCTION - CONT.
  • 12. POINTERS TO OBJECTS - Pointers can point to an object created by class . Declaration : classname object; classname * pointer; Definition : pointer = & object;
  • 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. POINTERS TO OBJECTS –CONT. E.g. pointer -> getdata( ); We can also use ( * pointer ) . function( );
  • 15. THIS POINTER C++ 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. 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. 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. 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. POINTERS TO DERIVED CLASS – CONT. Base Class Public: a , b Private / Protected: c , d Derived Class Public / Private / Protected : e , f , g , h If cptr = & d; cptr a , b
  • 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. POINTERS TO DERIVED CLASS – CONT.  E.g . Casting dptr -> show ( ) ; ( ( DC * ) bptr ) -> show ( ) ;
  • 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. 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. VIRTUAL FUNCTIONS - RULES 1. 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. 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. 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. RULES –CONT. 10.If a virtual function is define in the base class ,it need not be necessarily redefined in the derived class.
  • 30. POLYMORPHISM  Polymorphism is crucial feature of Object Oriented Programming.  Polymorphism simply means one name having multiple forms.
  • 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. POLYMORPHISM – CONT. Definition: Polymorphism is the ability to create a variable, a function or an object that has more than one form.
  • 33. EXAMPLE: For example: The + (plus) operator in C++: 4 + 5 <-- Integer addition 3.14 + 2.0 <-- Floating point addition s1 + "bar" <-- String concatenation!
  • 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. 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. REFERENCES : Let us C++ – by Yeshwant Kanetkar. Object Oriented Programming with C++ –by E . BALAGURUSAMY. Internet.