Upload
rattaj
View
3.625
Download
2
Embed Size (px)
DESCRIPTION
my first presentation pointers,virtual functions and polymorphism, most basic and simple and short presentation its just parial overview.
Citation preview
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 3The 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 3The value of *j is 3
* j
Introduction - Cont. How the *j gets the value of i ?int i , *j ;
Variable Names
i j
Value
MemoryAddress
65524 65522
Introduction - Cont. How the *j gets the value of i ?int i , *j ;i = 3 ;
Variable Names
i j
Value
MemoryAddress
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
MemoryAddress
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 , bPrivate / 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 addition3.14 + 2.0 <-- Floating point
additions1 + "bar" <-- String
concatenation!
TYPES OF POLYMORPHISM
Compile-time
Polymorphism
Polymorphism
Run-time Polymorphis
m
Function Overloading
Operator Overloadin
g
Virtual Function
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 !!