Top Banner
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
38

pointers,virtual functions and polymorphism

Apr 22, 2015

Download

News & Politics

rattaj

my first presentation pointers,virtual functions and polymorphism,
most basic and simple and short presentation
its just parial overview.
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: pointers,virtual functions and polymorphism

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

Page 2: pointers,virtual functions and polymorphism

POINTERS

Page 3: pointers,virtual functions and polymorphism

INTRODUCTION

Pointers are the variables which holds the addresses of other variables.

Pointer variables are denoted by

‘ * ptr ’

Pointers are the derived data types.

Page 4: pointers,virtual functions and polymorphism

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

Page 5: pointers,virtual functions and polymorphism

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

Page 6: pointers,virtual functions and polymorphism

Introduction - Cont. How the *j gets the value of i ?int i , *j ;

Variable Names

i j

Value

MemoryAddress

65524 65522

Page 7: pointers,virtual functions and polymorphism

Introduction - Cont. How the *j gets the value of i ?int i , *j ;i = 3 ;

Variable Names

i j

Value

MemoryAddress

65524 65522

3

Page 8: pointers,virtual functions and polymorphism

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.

Page 9: pointers,virtual functions and polymorphism

INTRODUCTION – CONT.

Pointers are used for memory management and achieving polymorphism.

C++ adds the concept of

CONSTANT POINTER & POINTER TO A CONSTANT . :=

Page 10: pointers,virtual functions and polymorphism

INTRODUCTION - CONT.

1.Constant Pointer ::

Declaration =

data type * const pointer

Page 11: pointers,virtual functions and polymorphism

2.Pointer to a Constant ::

data type const * pointer

3.const data type * const pointer

INTRODUCTION - CONT.

Page 12: pointers,virtual functions and polymorphism

POINTERS TO OBJECTS -

Pointers can point to an object created by class .

Declaration : classname object; classname * pointer; Definition : pointer = & object;

Page 13: pointers,virtual functions and polymorphism

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 .

Page 14: pointers,virtual functions and polymorphism

POINTERS TO OBJECTS –CONT.

E.g.pointer -> getdata( );

We can also use

( * pointer ) . function( );

Page 15: pointers,virtual functions and polymorphism

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;

Page 16: pointers,virtual functions and polymorphism

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 .

Page 17: pointers,virtual functions and polymorphism

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.

Page 18: pointers,virtual functions and polymorphism

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

Page 19: pointers,virtual functions and polymorphism

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

Page 20: pointers,virtual functions and polymorphism

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.

Page 21: pointers,virtual functions and polymorphism

POINTERS TO DERIVED CLASS – CONT.

E.g . Casting

dptr -> show ( ) ;

( ( DC * ) bptr ) -> show ( ) ;

Page 22: pointers,virtual functions and polymorphism

VIRTUAL FUNCTIONS

Page 23: pointers,virtual functions and polymorphism

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.

Page 24: pointers,virtual functions and polymorphism

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.

Page 25: pointers,virtual functions and polymorphism

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.

Page 26: pointers,virtual functions and polymorphism

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.

Page 27: pointers,virtual functions and polymorphism

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.

Page 28: pointers,virtual functions and polymorphism

RULES –CONT.

10.If a virtual function is define in the base class ,it need not be necessarily redefined in the derived class.

Page 29: pointers,virtual functions and polymorphism

POLYMORPHISM

Page 30: pointers,virtual functions and polymorphism

POLYMORPHISM

Polymorphism is crucial feature of Object Oriented Programming.

Polymorphism simply means one name having multiple forms.

Page 31: pointers,virtual functions and polymorphism

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++”.

Page 32: pointers,virtual functions and polymorphism

POLYMORPHISM – CONT.

Definition:

Polymorphism is the ability to create a variable, a function or an object that has more than one form.

Page 33: pointers,virtual functions and polymorphism

EXAMPLE:

For example:

The + (plus) operator in C++:4 + 5 <-- Integer addition3.14 + 2.0 <-- Floating point

additions1 + "bar" <-- String

concatenation!

Page 34: pointers,virtual functions and polymorphism

TYPES OF POLYMORPHISM

Compile-time

Polymorphism

Polymorphism

Run-time Polymorphis

m

Function Overloading

Operator Overloadin

g

Virtual Function

Page 35: pointers,virtual functions and 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.

Page 36: pointers,virtual functions and polymorphism

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.

Page 37: pointers,virtual functions and polymorphism

REFERENCES :

Let us C++ – by Yeshwant Kanetkar.

Object Oriented Programming with C++

–by E . BALAGURUSAMY.

Internet.

Page 38: pointers,virtual functions and polymorphism

THANK YOU !!