Object Oriented Programming
Using C++
By
Jasvinder Pal Singh
Assistant Professor
Department of Computer Science and Engineering
Object Oriented Language
Software Evolution
Procedure Oriented Language
Assembly Language
Machine Language
1,0
Machine Language
Machine Language
0000 1001 1100 0110 1010 1111 0101 1000
1010 1111 0101 1000 0000 1001 1100 0110
1100 0110 1010 1111 0101 1000 0000 1001
0101 1000 0000 1001 1100 0110 1010 1111
Assembly Language
(PDP-11 Programmed Data Processor)
Assembly Language
GCD: TST B
BEQ SIMPLE
MOV A, R5
SXT R4
DIV B, R4
MOV B, A
MOV R5, B
CALL GCD
SIMPLE: RETURN
Procedure Oriented Programming(POP)
•Conventional programming language such as COBOL, FORTRAN and C is
commonly known as Procedure-oriented programming
.
•The primary focus is on functions.
Main Function
Function-1 Function-2 Function-3
Function-4 Function-5
Procedure Oriented Programming(POP)
•Procedure oriented programming basically consists of writing a list of instructions for the
computer to follow and organizing these instructions into groups known as functions
•More importance to Functions very little attention to data that are being used by the
functions.
Relationship of data and functions in Procedural Programming
Global Data Global Data
Function-1
Data
Function-2
Data
Function-3
Data
Procedure Oriented Programming(POP)
•Data is not secure.
•Global data are more vulnerable to the changes
by the function.
•In large programs , it is very difficult to identify
what data is used by which function.
•Does not model real world problems very well.
Procedure Oriented Programming(POP)
Characteristics of POP:
•Emphasis is on doing things
•Large programs are divided into smaller programs known as
functions.
•Functions share global data.
•Work on top- down approach.
#include<stdio.h>
#include<conio.h>
int data; // Global Data
main()
{
clrsrcr();
printf("%d",data);
fun_1();
fun_2();
getch();
}
fun_1()
{
data++;
printf("%d",data);
}
fun_2()
{
data++;
printf("%d",data);
}
Object Oriented Programming
•Invention of Object Oriented Approach is to remove flaws of
Procedural approach.
•OOP treats data as a critical element and does not allow to move
freely.
•It ties data more closely to the functions data operate on data and
protect it from accidental modification from outside functions called
objects.
•OOP decompose a problem into a number of entities called objects
and build data and functions around these objects.
•The data of an object can be accessed only by the functions.
•Functions can communicate with functions of other objects.
Object Oriented Programming
Data
Functions
Data
Functions
Data
Functions
Object A Object B
Object C
Communication
Organization of data and functions in OOP
Object Oriented Programming
Characteristics of OOP
•Emphasis is on data rather than procedure.
•Programs are divide into objects.
•Data is hidden and cannot be accessed by external
functions.
•Objects can communicate with each other through
functions.
•New data and functions can be easily added whenever
necessary.
•Follows bottom-up approach in program design.
Features of Object Oriented
Programming(OOP)
•Objects
•Classes
•Data Abstraction and Encapsulation
•Inheritance
•Polymorphism
•Dynamic Binding
•Message Passing
Objects:
•This is the basic run-time entities in an object oriented programming.
•That is both data and function that operate on data are bundled as a unit called as
object.
•Program objects should be chosen such that they match closely with the real- world
objects.
•Objects take up space in the memory and have an associated address like structure
in C.
Object: STUDENT
DATA
Name
DOB
Marks
FUNCTIONS
Total
Average
Display
Total
Average
Display
STUDENT
Two ways of representing an object
Classes
•The entire set of data and code of an object can be made a user-
defined data type with the help of a class.
•Objects are variable of type class.
•Once a class has been defined we can create any number of objects
belonging to that class.
•A class is thus a collection of objects of similar type.
•Classes are user-defined data types and behave like the built-in types
of a programming language.
e.g: Fruits mango , apple.
Data Abstraction and Encapsulation
•The wrapping up of data and function into a single unit (called class) is known as
encapsulation.
•Data and encapsulation is the most striking feature of a class.
•The data is not accessible to the outside world, and only those functions which are
wrapped in the class can access it.
•Functions provide the interface between the object’s data and the program.
•Insulation of the data is called data hiding or information hiding.
•Abstraction refers to the act of representing essential features without including the
background details or explanation.
•Classes use the concept of abstraction
•The attributes are some time called data members and The functions that operate
on these data are sometimes called methods or member function.
Inheritance
•This is the process by which a class can be derived from a base class with all
features of base class and some of its own.
•This increases code reusability.
Types of Inheritance
In C++, we have 5 different types of Inheritance.
Namely,
1. Single Inheritance
2. Multiple Inheritance
3. Hierarchical Inheritance
4. Multilevel Inheritance
5. Hybrid Inheritance (also known as Virtual
Inheritance)
Types of Inheritance
Multiple Inheritance
Multilevel Inheritance
Hierarchical Inheritance
Hybrid Inheritance
Polymorphism
•Polymorphism is another important OOP concept .
•Polymorphism means the ability to take more than one form.
•An operation may exhibit different behavior is different instances.
•The behavior depends upon the types of data used in the
operation.
•The process of making an operator to exhibit different behaviors in
different instances is known as operator overloading.
•Using a single function name to perform different type of task is
known as function overloading.
Polymorphism
Example of Polymorphism
Polymorphism
Types of Polymorphism
Dynamic Binding
•Binding refers to the linking of a procedure call to the
code to be executed in response to the call.
•Dynamic binding also known as late binding, means that
the code associated with a given procedure call is not
known until the time of the call at Run-Time.
Message Passing
•A message for an object is a request for execution of a procedure .
•Invoke a function(procedure) in the receiving object that generates
the desired result.
•Message passing involves :
1. Specifying name of the object.
2. Name of the function(message).
3. Information to be sent.
Object Oriented Language
object-oriented languages into the following two
categories:
1. Object-based programming languages, and
2. Object-oriented programming languages.
Object Oriented Language
1. Object-based programming is the style of programming that
primarily supports encapsulation and object identity. Major
feature that are required for object based programming are:
• Data encapsulation
• Data hiding and access mechanisms
• Automatic initialization and clear-up of objects
• Operator overloading
Languages that support programming with objects are said to the
objects-based programming languages. They do not support
inheritance and dynamic binding. Ada is a typical object-based
programming language.
Object Oriented Language
2. Object-oriented programming language incorporates all
of object-based programming features along with two
additional features
1. inheritance and
2.dynamic binding.
Object-oriented programming can therefore be
characterized by the following statements:
Object-based features + inheritance + dynamic binding
Applications of OOP
The promising areas of application of OOP include:
•Real-time system
• Simulation and modeling
• Object-oriented data bases
• Hypertext, Hypermedia,
• AI and expert systems
• Neural networks and parallel programming
• Decision support and office automation systems
• CIM/CAM/CAD systems

C++ chapter 1

  • 1.
    Object Oriented Programming UsingC++ By Jasvinder Pal Singh Assistant Professor Department of Computer Science and Engineering
  • 2.
    Object Oriented Language SoftwareEvolution Procedure Oriented Language Assembly Language Machine Language 1,0
  • 3.
  • 4.
    Machine Language 0000 10011100 0110 1010 1111 0101 1000 1010 1111 0101 1000 0000 1001 1100 0110 1100 0110 1010 1111 0101 1000 0000 1001 0101 1000 0000 1001 1100 0110 1010 1111
  • 5.
  • 6.
    Assembly Language GCD: TSTB BEQ SIMPLE MOV A, R5 SXT R4 DIV B, R4 MOV B, A MOV R5, B CALL GCD SIMPLE: RETURN
  • 7.
    Procedure Oriented Programming(POP) •Conventionalprogramming language such as COBOL, FORTRAN and C is commonly known as Procedure-oriented programming . •The primary focus is on functions. Main Function Function-1 Function-2 Function-3 Function-4 Function-5
  • 8.
    Procedure Oriented Programming(POP) •Procedureoriented programming basically consists of writing a list of instructions for the computer to follow and organizing these instructions into groups known as functions •More importance to Functions very little attention to data that are being used by the functions. Relationship of data and functions in Procedural Programming Global Data Global Data Function-1 Data Function-2 Data Function-3 Data
  • 9.
    Procedure Oriented Programming(POP) •Datais not secure. •Global data are more vulnerable to the changes by the function. •In large programs , it is very difficult to identify what data is used by which function. •Does not model real world problems very well.
  • 10.
    Procedure Oriented Programming(POP) Characteristicsof POP: •Emphasis is on doing things •Large programs are divided into smaller programs known as functions. •Functions share global data. •Work on top- down approach.
  • 11.
    #include<stdio.h> #include<conio.h> int data; //Global Data main() { clrsrcr(); printf("%d",data); fun_1(); fun_2(); getch(); } fun_1() { data++; printf("%d",data); } fun_2() { data++; printf("%d",data); }
  • 12.
    Object Oriented Programming •Inventionof Object Oriented Approach is to remove flaws of Procedural approach. •OOP treats data as a critical element and does not allow to move freely. •It ties data more closely to the functions data operate on data and protect it from accidental modification from outside functions called objects. •OOP decompose a problem into a number of entities called objects and build data and functions around these objects. •The data of an object can be accessed only by the functions. •Functions can communicate with functions of other objects.
  • 13.
    Object Oriented Programming Data Functions Data Functions Data Functions ObjectA Object B Object C Communication Organization of data and functions in OOP
  • 14.
    Object Oriented Programming Characteristicsof OOP •Emphasis is on data rather than procedure. •Programs are divide into objects. •Data is hidden and cannot be accessed by external functions. •Objects can communicate with each other through functions. •New data and functions can be easily added whenever necessary. •Follows bottom-up approach in program design.
  • 15.
    Features of ObjectOriented Programming(OOP) •Objects •Classes •Data Abstraction and Encapsulation •Inheritance •Polymorphism •Dynamic Binding •Message Passing
  • 16.
    Objects: •This is thebasic run-time entities in an object oriented programming. •That is both data and function that operate on data are bundled as a unit called as object. •Program objects should be chosen such that they match closely with the real- world objects. •Objects take up space in the memory and have an associated address like structure in C. Object: STUDENT DATA Name DOB Marks FUNCTIONS Total Average Display Total Average Display STUDENT Two ways of representing an object
  • 17.
    Classes •The entire setof data and code of an object can be made a user- defined data type with the help of a class. •Objects are variable of type class. •Once a class has been defined we can create any number of objects belonging to that class. •A class is thus a collection of objects of similar type. •Classes are user-defined data types and behave like the built-in types of a programming language. e.g: Fruits mango , apple.
  • 18.
    Data Abstraction andEncapsulation •The wrapping up of data and function into a single unit (called class) is known as encapsulation. •Data and encapsulation is the most striking feature of a class. •The data is not accessible to the outside world, and only those functions which are wrapped in the class can access it. •Functions provide the interface between the object’s data and the program. •Insulation of the data is called data hiding or information hiding. •Abstraction refers to the act of representing essential features without including the background details or explanation. •Classes use the concept of abstraction •The attributes are some time called data members and The functions that operate on these data are sometimes called methods or member function.
  • 19.
    Inheritance •This is theprocess by which a class can be derived from a base class with all features of base class and some of its own. •This increases code reusability.
  • 20.
    Types of Inheritance InC++, we have 5 different types of Inheritance. Namely, 1. Single Inheritance 2. Multiple Inheritance 3. Hierarchical Inheritance 4. Multilevel Inheritance 5. Hybrid Inheritance (also known as Virtual Inheritance)
  • 21.
    Types of Inheritance MultipleInheritance Multilevel Inheritance Hierarchical Inheritance Hybrid Inheritance
  • 22.
    Polymorphism •Polymorphism is anotherimportant OOP concept . •Polymorphism means the ability to take more than one form. •An operation may exhibit different behavior is different instances. •The behavior depends upon the types of data used in the operation. •The process of making an operator to exhibit different behaviors in different instances is known as operator overloading. •Using a single function name to perform different type of task is known as function overloading.
  • 23.
  • 24.
  • 25.
    Dynamic Binding •Binding refersto the linking of a procedure call to the code to be executed in response to the call. •Dynamic binding also known as late binding, means that the code associated with a given procedure call is not known until the time of the call at Run-Time.
  • 26.
    Message Passing •A messagefor an object is a request for execution of a procedure . •Invoke a function(procedure) in the receiving object that generates the desired result. •Message passing involves : 1. Specifying name of the object. 2. Name of the function(message). 3. Information to be sent.
  • 27.
    Object Oriented Language object-orientedlanguages into the following two categories: 1. Object-based programming languages, and 2. Object-oriented programming languages.
  • 28.
    Object Oriented Language 1.Object-based programming is the style of programming that primarily supports encapsulation and object identity. Major feature that are required for object based programming are: • Data encapsulation • Data hiding and access mechanisms • Automatic initialization and clear-up of objects • Operator overloading Languages that support programming with objects are said to the objects-based programming languages. They do not support inheritance and dynamic binding. Ada is a typical object-based programming language.
  • 29.
    Object Oriented Language 2.Object-oriented programming language incorporates all of object-based programming features along with two additional features 1. inheritance and 2.dynamic binding. Object-oriented programming can therefore be characterized by the following statements: Object-based features + inheritance + dynamic binding
  • 30.
    Applications of OOP Thepromising areas of application of OOP include: •Real-time system • Simulation and modeling • Object-oriented data bases • Hypertext, Hypermedia, • AI and expert systems • Neural networks and parallel programming • Decision support and office automation systems • CIM/CAM/CAD systems