You are on page 1of 87

OOPS with C++

Module I

Kavya Kishore
Asst.Professor, Dept.of
BCA
St. Teresas College
Introduction to C++
C++ was developed by Bjarne Stroustrup,
as an extension to the C language.
C++ gives programmers a high level of
control over system resources and memory.
C++ is an object-oriented programming
language which gives a clear structure to
programs and allows code to be reused,
lowering development costs.
C++ is portable.
Evolution of Programming Methodology
Procedure Oriented Programming
Object Oriented Programming
Comparison of Procedure Oriented and Object Oriented Programming
POP (OOP)
1. Emphasis is on doing things 1. Emphasis is on data rather than procedure,
not on data, means it is function means object driven
driven
2. Main focus is on the function 2. Main focus is on the data that is being
and procedures that operate on operated
data
3. Top Down approach in 3. Bottom Up approach in program design
program design
4. Large programs are divided 4. Large programs are divided into classes
into smaller programs known as and objects
functions
5. Most of the functions share 5. Data is tied together with function in the
global data
data structure
6. Data moves openly in the 6. Data is hidden and cannot be accessed by
system from one function to external functions
another function
7. Adding of data and function is 7. Adding of data and function is easy
difficult
8. We cannot declare namespace 8. We can use name space directly, Ex: using
directly
namespace std;
9. Concepts like inheritance, 9. Concepts like inheritance, polymorphism, data
polymorphism, data encapsulation, abstraction, access specifiers are
encapsulation, abstraction, access available and can be used easily
specifiers are not available.
10. Examples: C, Fortran, Pascal, 10. Examples: C++, Java, C#, etc…
etc…
Merits and Demerits of OOP
Basic Concepts of OOPs
Object
Class
Data Abstraction
Encapsulation
Inheritance
Polymorphism
Dynamic Binding
Message Passing
Object
An object is an instance of a class.
An object means anything from real world like as
person, computer, bench etc...
An object is a component of a program that knows
how to interact with other pieces of the program.
For example, If Automobile is a class then car is
an object.
Object
Class
A class is a template that specifies the attributes
and behavior of things or objects.
A class is a blueprint or prototype from which
objects are created.
A class is a collection of objects, that contain
both data and functions.
Data Abstraction
It refers to the act of representing essential
features without including background details
and explanations.
Provides data security
Encapsulation
The wrapping up of data and functions
into a single unit (called class) is known
as encapsulation.
class Student
{
private :
char name[20];
int rollno;
float marks;
public:
void getdetails();
void putdetails();
};
int main()
{
Student s;
s.getdetails();
s.putdetails();
return 0;
}
Encapsulation
Inheritance
It is the process by which objects of one class
acquires the properties and behavior of another
class.
The existing class is called the base class and
new class is called the derived class.
Types of Inheritance
Polymorphism
The Greek word Polymorphism means the ability
to take more than one form.
Polymorphism refers to the ability of a C++
function or object to perform in different ways,
depending on how the function or object is used.
Polymorphism
Types of polymorphism
 Compile time (Static) polymorphism (or early
binding): Polymorphism during and compilation.
Function overloading and operator overloading are
examples.
 Run time (Dynamic) polymorphism (or late binding):
Polymorphism during run-time. It uses pointers. Virtual
functions are examples.
 Function Overloading: Functions with the same name,
but different signatures can act differently. Eg: The
function prototypes int area (int, int); and int area(int);
shows that area() is an overloaded function.
 Operator overloading: It is the process of giving new
meaning to an existing C++ operator.
Static Binding/Late Binding
If linking between method call and method
implementation is resolved at compile time
then we call it static binding or if it is resolved
at run time then it is dynamic binding.
Message Passing
A program contains set of object that communicates
with each other.
Creating classes that define objects and their behavior.
Creating objects from class definition
Establishing communication among objects.
Message passing involves the object name, function
name and the information to be sent.
Structure of a C++ program
Sample C++ program
Structure of a C++ program (Contd..)
 Pre-processors: These are the compiler
directive statements which give instruction to
the compiler to process the information
provided before actual compilation starts.
These lines always start with a # (hash)
symbol.
 Header files: Files available along with
compiler and they are kept in the standard
library. The header files contain the
information about functions, objects and
predefined derived data types.
Structure of a C++ program (Contd..)
 using namespace statement: It tells the compiler about a
namespace where it should search for the elements used in
the program. In C++, std is an abbreviation of 'standard'
and it is the standard namespace in which cout, cin and a
lot of other things are defined. So, when we want to use
them in a program, we need to follow the format std::cout
and std::cin. This kind of explicit referencing can be
avoided with the statement using namespace std; in the
program.

 main() function: An essential function in every C++


program. The execution starts at main() and ends within
main().
C++ Character set:

The character set of C++ is categorized as :


 Letters (A – Z, a – z)
 Digits (0 – 9),
 Special characters (#,@,$,(,),?)
 White spaces.
Tokens:
 The fundamental building blocks of the
program.
 C++ has five types of tokens –
Keywords
Identifiers
Literals
Punctuators
Operators
1. Keywords
 The words that convey a specific meaning
to the language compiler.
 These are also known as reserved words.
 Eg. if, switch, return, break
2. Identifiers
 These are the user-defined words used to name
different program elements such as memory
locations, statements, functions, objects, classes
etc.
 The identifiers of memory locations are called
variables.
 The identifiers assigned to statements are called
labels.
 The identifiers used to refer a set of statements
are called function names.
Rules for naming identifiers:
 An arbitrary long sequence of letters, digits
and underscores.
 The first character must be a letter or
underscore ( _ ).
 White space and special characters are not
allowed.
 Keywords cannot be used.
 Upper and lower case letters are treated
differently.
3. Literals:
 Data items that never change their value
during the program run. They are often
referred to as constants.
 Literals are of four types –
Integer literals
Floating point literals
Character literals
String literals.
i) Integer literals:

 The tokens constituted only by digits.


 They are whole numbers without fractional
part.
 Eg: 13, -76
ii) Floating point literals:

 Also known as real constants.


 These are the numbers having fractional
parts.
 These can be written in one of the two forms
–fractional form or exponential form.
 Eg: 4.35, 2.5e6, -5E-3 etc.
iii) Character literal:

 A single character enclosed in single quotes.


 Eg: ‘a’, ‘9’, ‘+’ etc.
iv) String literals:

 A sequence of one or more characters


enclosed within a pair of double quotes is
called a string.
 Eg: “Hello friends \0”, “123” etc.
Escape sequences:

 They are special character constants that


represent non-graphic symbols.
 It consists of a backslash (\) followed by one
or more specific characters.
 \n – newline
 \t – horizontal tab
4. Punctuators

 Some special symbols that have syntactic or


semantic meaning to the compiler.
 , “, .
5. Operator:

 A symbol that tells the compiler about a


specific operation.
 They are the tokens that trigger some kind
of operation.
 The operator is applied on a set of data
called operands.
 5+2
 C=a/b;
Data types

Data type are the means to identify


the nature of the data and the set of
operations that can be performed on
the data.

40
41
 Primitive data types are the basic data types
( int, char, float, double).

 Derived data types are a derivative of


primitive data types such as arrays, pointers.

 User defined data types are those data types


which are defined by the user/programmer
himself.

42
int
 These are the whole numbers, both positive
and negative.
 The keyword used to define integers is int
 An example of an integer value is 32.
 An example of declaring an integer variable
called sum is,
int sum;
sum = 20;

43
float

These are numbers which contain fractional


parts, both positive and negative.
The keyword used to define float variables
is float
An example of a float value is
In Exponential notation 0.3412345E2
In Fractional form 7.76
• Precision of float is 7digit

44
double

The keyword used to define double variable


is double
An example of a double value is .30E2
An example of declaring a double variable
called big is
double big;

45
char
 These are single characters.

 The keyword used to define character variables is char


 An example of declaring a character variable called

letter is
char letter;
letter='A';
Note the assignment of the character A to the
variable letter is done by enclosing the value in single
quotes.

46
boolean

To hold Boolean values, true or false.


Default value of true is 1
Default value o false is 0
Eg : int x= false + true + 6;

Value of x will be 7

47
Data type qualifiers

They are used to alter the size, range or


precision of data supported by the basic
data types. It is of two types
1. Size qualifiers
2. Sign qualifiers

48
Size qualifiers
 Size qualifiers alters the size of a basic type. There

are two size qualifiers


◦ long
◦ short
 For integer data types, there are three sizes:

 int, and two additional sizes called long and short,

which are declared as long int and short int.


 The long is intended to provide a larger size of

integer, and short is intended to provide a smaller


size of integer.
49
Sign qualifiers

Two types

1. Signed
•can store both positive and negative values
2. unsigned
•can store only positive values
short int a=50000;

50
User defined type declaration
A user can define an identifier that
represents an existing data type.

The user defined datatype identifier can


later be used to declare variables.

The general syntax is

typedef type identifier;

52
Example:
typedef int salary;
typedef float average;

Here salary symbolizes int and average symbolizes float.


They can be later used to declare variables as follows:

salary dept1, dept2;


average section1, section2;

Therefore dept1 and dept2 are indirectly declared as


integer data type and section1 and section2 are indirectly
float data type.

53
Enumerated data type
The second type of user defined data type is
enumerated data type.
Consists of integral constants.
Keyword used is enum

enum identifier {value1, value2 …. value n};

54
Example:
enum day {Monday, Tuesday, …. Sunday};
enum rainbow{Violet, Indigo, Blue, Green,
Yellow, Orange, Red};
By default Monday is 0,Tuesday is 1 and so on…

Can change default value of an enum element


during declaration.

enum day {Monday=2, Tuesday, …. Sunday=9};

Tuesday value will be 3.


55
const access modifier:
The keyword const is used to create
symbolic constants whose value can never
be changed during execution.

Eg: const float pi=3.14;

Here the value of pi remains constant


(unaltered) throughout the execution of the
program.
Operators and Expressions
Operators

The symbols which are used to perform logical


and mathematical operations in a C++
program are called operators.
Expression

Operators, constants and variables are


combined together to form expressions.
Consider the expression A + B * 5.
where, +, * are operators; A,B are variables; 5 is
constant and A + B * 5 is an expression. 57
• Unary operator
Operators that act upon a single operand
 Unary +
 Unary -
 Increment operator ++
 Decrement operator --
 Size of operator sizeof()

• Binary operator
+-*/%
• Ternary operator (conditional operator ?)
condition? true_value: false_value;
Eg. result=(A>100 ? 10:20);
58
Types of Operators

 Arithmetic operators
 Assignment operators
 Relational operators
 Logical operators
 Bit wise operators
 Conditional operators (ternary operators)
 Increment/decrement operators

59
60
Arithmetic operators

61
Relational operators

62
Logical operators

63
Logical operators

64
Assignment operator

Simple assignment operator(=)


Compound assignment operators
 Example for compound assignment : +=,-=,
*=, /=, %=, &=, ^=

65
66
Conditional operator

Conditional operators return one value if condition


is true and returns another value if condition is false.

This operator is also called as ternary operator.

Syntax:

condition? true_value: false_value;


 A>100?0:1;
Big=(a>b)?a:b; a=65 b=10
67
Increment/decrement Operators

Increment operators are used to increase the


value of the variable by one
Decrement operators are used to decrease the
value of the variable by one
•Example:
Increment operator: ++ i ;
Decrement operator: – –i;

68
69
++i means increment i then use it (Prefix notation)

i++ means use i then increment it (Postfix

notation)

70
Bitwise operators

& BitwiseAND
| BitwiseOR
~ BitwiseNOT
^ Bitwise XOR
<< LeftShift
>> RightShift

71
72
Size of Operator
Size of operator is a unary operator, which gives

size of operand in terms of byte that occupies in


the memory.
 It determines the length of entities, arrays and

structures when their size are not known to the


programmer.
It is also use to allocate size of memory

dynamically during execution of the program.


73
Special Operators

 The special operators include the comma operator, sizeof


operator, pointer operators (& and *) and member
selection operators (. and -> ).
 Operator Meaning
 sizeof sizeof operator
 , comma operator
 & and * pointer operators
 . and -> member selection operator
74
Operator precedence

75
Statements
 Two types :
 Simple statements

 Encloses no other statements. Also called atomic statements.

 Eg: a=b+c;
 Compound statements

 Encloses more than one statements within a set of braces.

temp=a;

a=b;

b=temp; }
76
Declaration Statements

 Every variable used in the program should be declared


to the compiler. The declaration does two things.
1. Tells the compiler the variable’s name.
2. Specifies what type of data the variable will hold.
 The general format of any declaration
data-type v1, v2, v3, ………..,vn;
 Example:
int sum;
int number, salary;
double average, mean;

77
Input statements
cin - Input statements
Standard input stream
Variable cin is predefined to denote an input
stream from the standard input device (the
keyboard)
The extraction operator >> is called “get
from”

cin >> variable-name;


Meaning: read the value of the variable called
<variable-name> from the user

78
Syntax: cin >> Variable1 >> Variable2 . . . ;

These examples yield the same output:


cin >> x;
cin >> y;
OR
cin >> x >> y;

79
Output statements

cout - Output statement

Standard output stream


Variable cout is predefined to denote an
output stream that goes to the standard
output device (display screen).
The insertion operator << is called “put to”

80
Syntax: cout << Expression << Expression . . . ;

cout<<“The answer is”;


cout<<3*4;
Or
cout<< “The answer is”<<3*4;

81
Selection Statements

 Selection statements are used to alter the normal


sequential flow of control of a program. It
provides the ability to decide the order of
execution. They are :

 Simple if
 if-else
 if else if ladder
 Nested if
 switch

82
Simple if

if (condition)
{
statement block;
}

83
Simple if - Example
#include<iostream>
using namespace std;
int main()
{
int age;
cout<<”\n Enter the age”;
cin>> age;
if (age>=18)
{
cout<<”You are eligible to vote”;
}
return 0;
} 84
if - else

if (condition)
{
statement block 1;
}
else
{
statement block 2;
}

85
if else if ladder

if (condition 1)
statement block 1;
else if (condition 2)
statement block 2;
else if (condition 3)
statement block 3;
...............
else
statement block n;

86
switch

switch(expression)
{
case constant_1 : statement block 1;
break;
case constant_2 : statement block 2;
break;
case constant_3 : statement block 3;
break;
:
:
case constant_n-1 : statement block n-1;
break;
default : statement block n;
87
}

You might also like