Docsity
Docsity

Prepare for your exams
Prepare for your exams

Study with the several resources on Docsity


Earn points to download
Earn points to download

Earn points by helping other students or get them with a premium plan


Guidelines and tips
Guidelines and tips

C & C++ Programming Language, Study notes of Computer Science

Full detail And easiest way to learn c aand c ++language

Typology: Study notes

2021/2022

Available from 06/12/2022

sarvesh-shriwas
sarvesh-shriwas 🇮🇳

1 document

1 / 146

Toggle sidebar

This page cannot be seen from the preview

Don't miss anything!

bg1
Object Oriented Programming Using
C++
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27
pf28
pf29
pf2a
pf2b
pf2c
pf2d
pf2e
pf2f
pf30
pf31
pf32
pf33
pf34
pf35
pf36
pf37
pf38
pf39
pf3a
pf3b
pf3c
pf3d
pf3e
pf3f
pf40
pf41
pf42
pf43
pf44
pf45
pf46
pf47
pf48
pf49
pf4a
pf4b
pf4c
pf4d
pf4e
pf4f
pf50
pf51
pf52
pf53
pf54
pf55
pf56
pf57
pf58
pf59
pf5a
pf5b
pf5c
pf5d
pf5e
pf5f
pf60
pf61
pf62
pf63
pf64

Partial preview of the text

Download C & C++ Programming Language and more Study notes Computer Science in PDF only on Docsity!

Object Oriented Programming Using

C++

P.T.O

LECTURE NOTES

ON

Object Oriented Programming Using C++

Prepared by

Dr. Subasish Mohapatra

Department of Computer Science and Application

College of Engineering and Technology, Bhubaneswar

Biju Patnaik University of Technology, Odisha

P.T.O

CONTENTS

Lecture 01: Introduction

Lecture 02: Object Oriented Programming

Lecture 03: BASIC CONCEPTS OF OBJECTS ORIENTED PROGRAMMING

Lecture 04: BENEFITS OF OOP

Lecture 05: Basics of C++

Lecture 06: Tokens

Lecture 07: Basic Data types in C++

Lecture 08: Symbolic Constant

Lecture 09: Operators

Lecture 10: Control Structures

Lecture 11: Functions in C++

Lecture 12: Function Overloading

Lecture 13: Class

Lecture 14: Member Function

Lecture 15: Nesting of Member function

Lecture 16: Array with Class

Lecture 17: Static Data Member

Lecture 18: Friendly functions

Lecture 19: Returning Objects

Lecture 20: Constructors

Lecture 21: Destructors

Lecture 22 & 23: Operator Overloading

Lecture 24: Type Conversion

Lecture 25: Class to Basic type

Lecture 26: Inheritance

Lecture 27: Multilevel Inheritance

Lecture 28: Hierarchical Inheritance

Lecture 29: Virtual Base Class

Lecture 30: Polymorphism

Lecture 31: Virtual functions

Lecture 32: Pure Virtual Functions

Lecture 33: C++ function overriding

Lecture 34: Exception Handling

Lecture 35: Array reference out of bound

Lecture 3 6 : Containership in C++

Lecture 37: Template

Lecture 38: Class Template

Lecture 39: Virtual destructors

Lecture 40: Managing Console I/O

Lecture 41: Namespaces

Lecture 42: New & Delete Operators

P.T.O

Module-1:

LECTURE- 1

Introduction:

Programmers write instructions in various programming languages to perform their computation

tasks such as:

(i) Machine level Language

(ii) Assembly level Language

(iii) High level Language

Machine level Language :

Machine code or machine language is a set of instructions executed directly by a computer's central

processing unit (CPU). Each instruction performs a very specific task, such as a load, a jump, or an

ALU operation on a unit of data in a CPU register or memory. Every program directly executed by a

CPU is made up of a series of such instructions.

Assembly level Language :

An assembly language (or assembler language) is a low-level programming language for a computer,

or other programmable device, in which there is a very strong (generally one-to-one) correspondence

between the language and the architecture's machine code instructions. Assembly language is

converted into executable machine code by a utility program referred to as an assembler; the

conversion process is referred to as assembly, or assembling the code.

High level Language :

High-level language is any programming language that enables development of a program in much

simpler programming context and is generally independent of the computer's hardware architecture.

High-level language has a higher level of abstraction from the computer, and focuses more on the

programming logic rather than the underlying hardware components such as memory addressing and

register utilization.

The first high-level programming languages were designed in the 1950s. Now there are dozens of

different languages, including Ada , Algol, BASIC, COBOL, C, C++, JAVA, FORTRAN, LISP,

Pascal, and Prolog. Such languages are considered high-level because they are closer to human

languages and farther from machine languages. In contrast, assembly languages are considered low-

level because they are very close to machine languages.

The high-level programming languages are broadly categorized in to two categories:

(iv) Procedure oriented programming(POP) language.

(v) Object oriented programming(OOP) language.

P.T.O

LECTURE- 2

Object Oriented Programing

“Object oriented programming as an approach that provides a way of modularizing programs by

creating partitioned memory area for both data and functions that can be used as templates for

creating copies of such modules on demand”.

Object A Object B

Data Data

Communication

Functions Functions

Object C

Functions

Data

Features of the Object Oriented programming

  1. Emphasis is on doing rather than procedure.
  2. programs are divided into what are known as objects.
  3. Data structures are designed such that they characterize the objects.
  4. Functions that operate on the data of an object are tied together in the data

structure.

  1. Data is hidden and can’t be accessed by external functions.
  2. Objects may communicate with each other through functions.
  3. New data and functions can be easily added.
  4. Follows bottom-up approach in program design.

P.T.O

LECTURE- 3

BASIC CONCEPTS OF OBJECTS ORIENTED PROGRAMMING

  1. Objects
  2. Classes
  3. Data abstraction and encapsulation
  4. Inheritance
  5. Polymorphism
  6. Dynamic binding
  7. Message passing

OBJECTS

Objects are the basic run-time entities in an object-oriented system. They may represent a person, a

place, a bank account, a table of data or any item that the program must handle.

The fundamental idea behind object oriented approach is to combine both data and function

into a single unit and these units are called objects.

The term objects means a combination of data and program that represent some real word

entity. For example: consider an example named Amit; Amit is 25 years old and his salary is 2500.

The Amit may be represented in a computer program as an object. The data part of the object would

be (name: Amit, age: 25, salary: 2500)

The program part of the object may be collection of programs (retrive of data, change age,

change of salary). In general even any user – defined type-such as employee may be used. In the

Amit object the name, age and salary are called attributes of the object.

Object: Student STUDENT

DATA Total

Name

Date-of-birth

Marks Average

FUNCTIONS

Total

Average Display

Display

CLASS:

A group of objects that share common properties for data part and some program part are

collectively called as class.

In C ++ a class is a new data type that contains member variables and member functions that

operate on the variables.

P.T.O

MESSAGE PASSING :

An object oriented program consists of a set of objects that communicate with each

other.

A message for an object is a request for execution of a procedure and therefore will

invoke a function (procedure) in the receiving object that generates the desired result. Message

passing involves specifying the name of the object, the name of the function (message) and

information to be sent.

Employee. Salary (name)

Object Information

Message

P.T.O

LECTURE- 4

BENEFITS OF OOP:

Oop offers several benefits to both the program designer and the user. Object-oriented contributes to

the solution of many problems associated with the development and quality of software products.

The principal advantages are :

  1. Through inheritance we can eliminate redundant code and extend the use of existing

classes.

  1. We can build programs from the standard working modules that communicate with one

another, rather than having to start writing the code from scratch. This leads to saving of

development time and higher productivity.

  1. This principle of data hiding helps the programmer to build secure programs that can’t be

invaded by code in other parts of the program.

  1. It is possible to have multiple instances of an object to co-exist with out any interference.
  2. It is easy to partition the work in a project based on objects.
  3. Object-oriented systems can be easily upgraded from small to large systems.
  4. Message passing techniques for communication between objects makes the interface

description with external systems much simpler.

  1. Software complexity can be easily managed.

APPLICATION OF OOP:

The most popular application of oops up to now, has been in the area of user interface

design such as windows. There are hundreds of windowing systems developed using oop

techniques.

Real business systems are often much more complex and contain many more objects

with complicated attributes and methods. Oop is useful in this type of applications because it

can simplify a complex problem. The promising areas for application of oop includes.

  1. Real – Time systems.
  2. Simulation and modeling
  3. Object oriented databases.
  4. Hypertext,hypermedia and expertext.
  5. Al and expert systems.
  6. Neural networks and parallel programming.
  7. Dicision support and office automation systems.
  8. CIM / CAM / CAD system.

P.T.O

Cascading Of I/O Operator:

cout<<”sum=”<<sum<<”\n”;

cout<<”sum=”<<sum<<”\n”<<”average=”<<average<<”\n”;

cin>>number1>>number2;

Structure Of A Program :

Probably the best way to start learning a programming language is by writing a program. Therefore,

here is our first program:

// my first program in C++

#include

using namespace std;

int main ()

{

cout << "Hello World!";

return 0;

}

Output:-Hello World!

The first panel shows the source code for our first program. The second one shows the result of the

program once compiled and executed. The way to edit and compile a program depends on the

compiler you are using. Depending on whether it has a Development Interface or not and on its

version. Consult the compilers section and the manual or help included with your compiler if you

have doubts on how to compile a C++ console program.

The previous program is the typical program that programmer apprentices write for the first time,

and its result is the printing on screen of the "Hello World!" sentence. It is one of the simplest

programs that can be written in C++, but it already contains the fundamental components that every

C++ program has. We are going to look line by line at the code we have just written:

// my first program in C++

This is a comment line. All lines beginning with two slash signs (//) are considered comments and do

not have any effect on the behavior of the program. The programmer can use them to include short

explanations or observations within the source code itself. In this case, the line is a brief description

of what our program is.

#include

Lines beginning with a hash sign (#) are directives for the preprocessor. They are not regular code

lines with expressions but indications for the compiler's preprocessor. In this case the directive

#include tells the preprocessor to include the iostream standard file. This specific file

(iostream) includes the declarations of the basic standard input-output library in C++, and it is

included because its functionality is going to be used later in the program.

using namespace std;

All the elements of the standard C++ library are declared within what is called a namespace, the

namespace with the name std. So in order to access its functionality we declare with this expression

that we will be using these entities. This line is very frequent in C++ programs that use the standard

library, and in fact it will be included in most of the source codes included in these tutorials.

int main ()

This line corresponds to the beginning of the definition of the main function. The main function is

the point by where all C++ programs start their execution, independently of its location within the

source code. It does not matter whether there are other functions with other names defined before or

after it – the instructions contained within this function's definition will always be the first ones to be

P.T.O

executed in any C++ program. For that same reason, it is essential that all C++ programs have a main

function.

The word main is followed in the code by a pair of parentheses (()). That is because it is a function

declaration: In C++, what differentiates a function declaration from other types of expressions are

these parentheses that follow its name. Optionally, these parentheses may enclose a list of parameters

within them.

Right after these parentheses we can find the body of the main function enclosed in braces ({}).

What is contained within these braces is what the function does when it is executed.

cout << "Hello World!";

This line is a C++ statement. A statement is a simple or compound expression that can actually

produce some effect. In fact, this statement performs the only action that generates a visible effect in

our first program.

cout represents the standard output stream in C++, and the meaning of the entire statement is to

insert a sequence of characters (in this case the Hello World sequence of characters) into the standard

output stream (which usually is the screen).

cout is declared in the iostream standard file within the std namespace, so that's why we needed to

include that specific file and to declare that we were going to use this specific namespace earlier in

our code.

Notice that the statement ends with a semicolon character (;). This character is used to mark the end

of the statement and in fact it must be included at the end of all expression statements in all C++

programs (one of the most common syntax errors is indeed to forget to include some semicolon after

a statement).

return 0;

The return statement causes the main function to finish. return may be followed by a return code (in

our example is followed by the return code 0). A return code of 0 for the main function is generally

interpreted as the program worked as expected without any errors during its execution. This is the

most usual way to end a C++ console program.

You may have noticed that not all the lines of this program perform actions when the code is

executed. There were lines containing only comments (those beginning by //). There were lines with

directives for the compiler's preprocessor (those beginning by #). Then there were lines that began

the declaration of a function (in this case, the main function) and, finally lines with statements (like

the insertion into cout), which were all included within the block delimited by the braces ({}) of the

main function.

The program has been structured in different lines in order to be more readable, but in C++, we do

not have strict rules on how to separate instructions in different lines. For example, instead of

int main ()

{

cout << " Hello World!";

return 0;

}

We could have written:

int main ()

{

cout << "Hello World!";

return 0;

}

All in just one line and this would have had exactly the same meaning as the previous code.

In C++, the separation between statements is specified with an ending semicolon (;) at the end of

each one, so the separation in different code lines does not matter at all for this purpose. We can

write many statements per line or write a single statement that takes many code lines. The division of

P.T.O

{

char name[30];

int age;

public:

void getdata(void);

void display(void);

};

void person :: getdata ( void )

{

cout<<”enter name”;

cin>>name;

cout<<”enter age”;

cin>>age;

}

void display()

{

cout<<”\n name:”<<name;

cout<<”\n age:”<<age;

}

int main( )

{

person p;

p.getdata();

p.display();

return(0);

}

P.T.O

LECTURE- 6

TOKENS:

The smallest individual units in program are known as tokens. C++ has the following

tokens.

i. Keywords

ii. Identifiers

iii. Constants

iv. Strings

v. Operators

KEYWORDS:

The keywords implement specific C++ language feature. They are explicitly reserved

identifiers and can’t be used as names for the program variables or other user defined program

elements. The keywords not found in ANSI C are shown in red letter.

C++ KEYWORDS:

Asm double new switch

Auto else operator template

Break enum private this

Case extern protected throw

Catch float public try

Char for register typedef

Class friend return union

Const goto short unsigned

Continue if signed virtual

Default inline sizeof void

Delete long struet while

IDENTIFIERS:

Identifiers refers to the name of variable , functions, array, class etc. created by programmer. Each

language has its own rule for naming the identifiers.

The following rules are common for both C and C++.

P.T.O

Lecture- 7

BASIC DATA TYPES IN C++

C ++ Data Types

User defined type Built in types Derived type

Structure Array

Union Function

Class pointer

enumeration

Integral type void Floating point

int char float double

Both C and C++ compilers support all the built in types. With the exception of void the basic

datatypes may have several modifiers preceding them to serve the needs of various situations. The

modifiers signed, unsigned, long and short may applied to character and integer basic data types.

However the modifier long may also be applied to double.

Data types in C++ can be classified under various categories.

TYPE BYTES RANGE

char 1 - 128 to – 127

usigned 1 0 to 265

sgned char 1 - 128 to 127

int 2 - 32768 to 32768

unsigned int 2 0 to 65535

singed int 2 - 32768 to 32768

short int 2 - 32768 to 32768

P.T.O

long int 4 - 2147483648 to 2147483648

signed long int 4 - 2147483648 to 2147483648

unsigned long int 4 0 to 4294967295

float 4 3.4E-38 to 3.4E+

double 8 1.7E - 308 to 1.7E +

long double 10 3.4E-4932 to 1.1E+ 4932

The type void normally used for:

  1. To specify the return type of function when it is not returning any value.

  2. To indicate an empty argument list to a function.

Example:

Void function(void);

Another interesting use of void is in the declaration of genetic pointer

Example:

*Void gp;

Assigning any pointer type to a void pointer without using a cast is allowed in both C and ANSI C.

In ANSI C we can also assign a void pointer to a non-void pointer without using a cast to non void

pointer type. This is not allowed in C ++.

Example:

v *oid ptr1;

*void ptr2;

Are valid statement in ANSI C but not in C++. We need to use a cast operator.

p tr2=(char * ) ptr1;

USER DEFINED DATA TYPES:

STRUCTERS AND CLASSES

We have used user defined data types such as struct,and union in C. While these more features have

been added to make them suitable for object oriented programming. C++ also permits us to define