0% found this document useful (0 votes)
41 views17 pages

Object Oriented Programming Using C++ CST-157 Unit-Iii Pointers and Virtual Functions Chapter-7

This document discusses pointers and virtual functions in C++. It provides 3 objectives: to understand pointers, apply virtual functions for modeling problems, and apply dynamic memory allocation. It covers declaring and initializing pointers, pointers to objects, the this pointer, static and dynamic binding, and new/delete operators. The outcomes are to understand C++ programming using pointers, evaluate programming techniques, and gain in-depth knowledge of dynamic binding.

Uploaded by

Shesh
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
41 views17 pages

Object Oriented Programming Using C++ CST-157 Unit-Iii Pointers and Virtual Functions Chapter-7

This document discusses pointers and virtual functions in C++. It provides 3 objectives: to understand pointers, apply virtual functions for modeling problems, and apply dynamic memory allocation. It covers declaring and initializing pointers, pointers to objects, the this pointer, static and dynamic binding, and new/delete operators. The outcomes are to understand C++ programming using pointers, evaluate programming techniques, and gain in-depth knowledge of dynamic binding.

Uploaded by

Shesh
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 17

Object Oriented

Programming using C++


CST-157
UNIT-III
Pointers and Virtual
Functions
Chapter- 7
Course Objectives
•To understand the basics of Pointers in C++ Programming.
•To apply virtual functions in programming languages for
modeling real world problems.
• To apply the concept of Dynamic Memory Allocation.

University Institute of Engineering


CONTENTS

•Declaring & initializing pointers


• Pointer to objects
• This pointer
• Pointer to derived classes
• Static and dynamic binding
•Dynamic memory allocation
•new and delete operator.

University Institute of Engineering


3
Introduction of Pointers
• Pointer is a variable (like int, float, char,...) which holds
address of another variables.
• Pointer is the most important concept in case of System
programming or CORE programming coz it allows direct
access to memory locations

e.g.:-
1. int a=10;
2. int *pa=&a;
3. cout<<*pa;
University Institute of Engineering
4
Declaring Pointer
Data-type *name;
• * is a unary operator, also called as indirection operator.
• * is used to declare a pointer and also to dereference a
pointer.
• When you write int *,
• compiler assumes that any address that it holds points
to an integer type.
• m= &count;
• it means memory address of count variable is stored into
m.

University Institute of Engineering


5
Initializing Pointer
Int *ptr;
• declaring variable ptr which holds the value at
address of int type
 int val =1;
• assigning int the literal value of 1
 ptr=&val;
• dereference and get value at address stored in ptr
int deref =*ptr
• cout<< deref;
•Output will be 1
University Institute of Engineering
Benefits of Pointer

• Pointers are used in situations when passing actual values is


difficult or not desired.
• To return more than one value from a function.
• They increase the execution speed.
• The pointer are more efficient in handling the data types .
• Pointers reduce the length and complexity of a program.

University Institute of Engineering


7
Pointers to Objects

• Pointers can point to objects as well as to simple


data types and arrays. We’ve seen many examples
of objects defined and given a name, in statements
like
• Distance dist;
• where an object called ‘dist’ is defined to be of the
Distance class

University Institute of Engineering


8
Accessing Member Functions by Pointer
#include <iostream>
using namespace std;
class Distance // Distance class
{
private:
int feet;
float inches;
public:
void getdist() //get length from user
{
cout << “\nEnter feet: “; cin >> feet;
cout << “Enter inches: “; cin >> inches;}

University Institute of Engineering


9
void showdist() //display distance
{ cout << feet << “\’-” << inches << ‘\”’; }
Cont..
}
int main()
{
Distance dist; //define a named Distance object
dist.getdist(); //access object members
dist.showdist(); // with dot operator
Distance* distptr; //pointer to Distance
distptr = new Distance; //points to new Distance object
distptr->getdist(); //access object members
distptr->showdist(); // with -> operator
cout << endl;
return 0;}
University Institute of Engineering
10
This Pointer
• The this pointer is a pointer accessible only within the
non static member functions of a class, struct, or union
type.
• It points to the object for which the member function
is called. Static member functions do not have a this
pointer.
• Syntax:

this->member-identifier

University Institute of Engineering


11
Pointer to Derived
Classes
• It is possible to declare the pointer that points to base
class as well as derived class.
• One pointer can point to different classes.
• For example, X is a base class and Y is a derived class.
• The pointer pointing to X can also point to Y.

University Institute of Engineering


12
Cont..

class base { void main() {


public: base b1;
void show() { b1.show(); // base
cout << “base\n”; derived d1;
d1.show(); // derived
}
base *pb = &b1;
};
pb->show(); // base
class derived : public base {
pb = &d1;
public: pb->show(); // base
void show() { }
cout << “derived\n”; All the function calls here are
} statically bound
};

University Institute of Engineering


13
Static Binding

• Static binding occurs when an object is associated with a


member function based on the static type of the object.
• The static type of an object is the type of its class or the type
of its pointer or reference.
• A member function statically bound to an object can be either
a member of its class or an inherited member of a direct or
indirect base class.
• Since static binding occurs at compile time, it is also called
compile time binding.

University Institute of Engineering


14
Dynamic Binding
• Dynamic binding occurs when a pointer or reference is
associated with a member function based on the dynamic type
of the object.
• The dynamic type of an object is the type of the object
actually pointed or referred to rather than the static type of its
pointer or reference.
• The member function that is dynamically bound must
override a virtual function declared in a direct or indirect
base class.
• Since dynamic binding occurs at run time, it is also called run
time binding.

University Institute of Engineering


15
Course Outcomes
• Understand the C+ programming using pointers
• Identify the strengths and weaknesses of different
programming techniques
• To provide in-depth knowledge of dynamic binding
in programming

University Institute of Engineering


16
References

i. https://www.computerhope.com/jargon/i/imp-
programming.htm
ii. http://people.cs.aau.dk/paradigms_themes-
paradigm-overview-section.html
iii. https://www.tutorialspoint.com/
iv. http://www.doc.ic.ac.uk

University Institute of Engineering

You might also like