This presentation discusses pointers, virtual functions, and polymorphism in C++. It defines pointers as variables that hold the addresses of other variables, and explains how pointers can point to objects through examples. Virtual functions allow a single base class pointer to refer to objects of derived classes by determining the function to call at runtime based on the object's type. Polymorphism means one name can have multiple forms, and it is a key feature of object-oriented programming that allows functions to work with objects of different types through virtual functions.
Model Call Girl in Bikash Puri Delhi reach out to us at 🔝9953056974🔝
POINTERS AND 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 . :=
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++”.
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.