Unit 2 Notes
Unit 2 Notes
C++ Basics
Simple C++ Program
A Simple C++ Program
#include <iostream> //include header file
using namespace std;
int main()
{
cout << "Hello World"; // C++ statement
}
I like C++ so much
return 0;
I iostream
will score good
is just like marks
we include stdio.hin
in c C++
program.
It contains declarations for the identifier cout and the insertion
operator <<.
iostream should be included at the beginning of all programs
that use input/output statements.
C++ Basics 3
A Simple C++ Program (Cont…)
#include <iostream> //include header file
using namespace std;
int main()
{
cout << "Hello World"; // C++ statement
I like C++ so much
}
return 0;
I Awill score
namespace goodregion.
is a declarative marks in C++
A namespace is a part of the program in which certain names are
recognized; outside of the namespace they’re unknown.
namespace defines a scope for the identifies that are used in a
program.
using and namespace are the keywords of C++.
C++ Basics 4
A Simple C++ Program (Cont…)
#include <iostream> //include header file
using namespace std;
int main()
{
cout << "Hello World"; // C++ statement
}
I like C++ so much
return 0;
}
I like C++ so much
return 0;
I In
will scorereturns
C++, main() good marks
an integer in C++
type value.
Therefore, every main() in C++ should end with a return 0;
statement; otherwise error will occur.
The return value from the main() function is used by the
runtime library as the exit code for the process.
C++ Basics 6
Insertion Operator <<
cout << "Hello World";
C++ Basics 7
Program: Basic C++ program
Write a C++ Program to print following
C++ Basics 8
Program: Basic C++ program
#include <iostream>
using namespace std;
int main()
{
Output
Name: Gyan Ganga City: Jabalpur Country: India
C++ Basics 9
Program: Basic C++ program(Cont…)
#include <iostream> #include <iostream>
using namespace std; using namespace std;
int main() int main()
{ {
cout << "Name: GGITS"; cout << "Name: GGITS"<<endl;
cout << "City: Jabalpur\n"; cout << "City: Jabalpur"<<endl;
cout << "Country: India"<<endl;
}
I like C++ so much
cout << "Country: India";
return 0;
}
return 0;
C++ Basics 10
Extraction Operator >>
cin >> number1;
The operator >> is called the
extraction operator.
It extracts (or takes) the value Object Extraction Operator
from keyboard and assigns it to
I like C++ so much
cin >> number1
the variable on its right.
The identifier cin is a predefined Variable
I object
will score good marks in C++
that represents standard
input stream in C++.
Here, standard input stream KeyBoard
represents the Keyboard.
The operator >> is used as
bitwise right shift operator also.
C++ Basics 11
Program: Basic C++ program
#include<iostream>
using namespace std;
int main()
{
int number1,number2;
cout<<"Addition : ";
cout<<number1+number2; //Display Addition
return 0;
}
C++ Basics 12
C++ Tokens
C++ Tokens
The smallest individual unit of a program is known as token.
C++ has the following tokens:
− Keywords
#include <iostream>
− Identifiers using namespace std;
I like C++ so much
− Constants int main()
{
I will score good marks in C++
− Strings cout << "Hello World";
return 0;
− Special Symbols
}
− Operators
C++ Basics 14
Keywords and Identifier
C++ reserves a set of 84 words for its own use.
These words are called keywords (or reserved words), and each of
these keywords has a special meaning within the C++ language.
Identifiers are names that are given to various user defined
I like C++ so much
program elements, such as variable, function and arrays.
Some of Predefined identifiers are cout, cin, main
I will score good marks in C++
We cannot use Keyword as user defined identifier.
C++ Basics 15
Keywords in C++
asm double new switch
auto else operator template
break enum private this
case extern protected throw
I like C++ so much
catch float public try
char for register typeof
I will score good marks in C++
class friend return union
const goto short unsigned
continue if signed virtual
default inline sizeof void
delete int static volatile
do long struct while
C++ Basics 16
Rules for naming identifiers in C++
1. First Character must be an alphabet or underscore.
2. It can contain only letters(a..z A..Z), digits(0 to 9) or
underscore(_).
3. Identifier name cannot be keyword.
I4. like C++
Only first so much
31 characters are significant.
C++ Basics 17
Valid, Invalid Identifiers
1) Darshan Valid 12) xyz123 Valid
2) A Valid 13) part#2 Invalid
3) Age Valid 14) "char" Invalid
4) void Reserved word 15) #include Invalid
I like C++ so much16) This_is_a_ Valid
5) MAX-ENTRIES Invalid
Reserved word Valid
I7) time
will score
6) double
Valid
good marks
17) _xyz
18) 9xyz
in C++
Invalid
8) G Valid 19) main Standard identifier
9) Sue's Invalid 20) mutable Reserved word
10) return Reserved word 21) double Reserved word
11) cout Standard identifier 22) max?out Invalid
C++ Basics 18
Constants / Literals
Constants in C++ refer to fixed values that do not change during
execution of program.
CONSTANTS
SINGLE
INTEGER REAL STRING
CHARACTER
CONSTANTS CONSTANTS CONSTANTS
CONSTANTS
i.e. i.e. i.e.
i.e.
123,-321, 6543 0.0083, -0.75 “Hello”, “197”
‘5’, ‘X’, ‘;’
C++ Basics 19
C++ Operators
C++ Operators
All C language operators are valid in C++.
1. Arithmetic operators (+, - , *, /, %)
2. Relational operators (<, <=, >, >=, ==, !=)
3. Logical operators (&&, ||, !)
C++ Basics 21
Arithmetic Operators
C++ Basics 22
Relational Operators
Operator Meaning
< Is less than
<= Is less than or equal to
I like C++ so much
> Is greater than
I will score>= good marks
Is greater than orin C++
equal to
== Equal to
!= Not equal to
C++ Basics 23
Logical Operators
Operator Meaning
&& Logical AND
|| Logical OR
! Logical NOT
I like aC++ sobmucha && b a || b
true true true true
I willtruescore false
good marks
false intrueC++
false true false true
false false false false
C++ Basics 24
Assignment operator
We assign a value to a variable using the basic assignment
operator (=).
Assignment operator stores a value in memory.
The syntax is
I like C++leftSide
so much= rightSide ;
Literal: ex. i = 1;
Variable identifier: ex. start = i;
Expression: ex. sum = first + second;
C++ Basics 25
Assignment Operators (Shorthand)
Syntax:
leftSide Op= rightSide ;
It is an arithmetic
operator.
IEx:like C++ so much
Simple assignment
Shorthand operator
x=x+3; operator
I willx+=3;score good marks
a = a+1
in C++a += 1
a = a-1 a -= 1
a = a * (m+n) a *= m+n
a = a / (m+n) a /= m+n
a = a % b a %= b
C++ Basics 26
Increment and Decrement Operators
Increment ++
The ++ operator used to increase the value of the variable by one
Decrement ─ ─
The ─ ─ operator used to decrease the value of the variable by one
Example:
I like x=100;
C++
x++;
so much
IAfter
will scorethegood
the execution value of x marks
will be 101. in C++
Example:
x=100;
x--;
After the execution the value of x will be 99.
C++ Basics 27
Pre & Post Increment operator
Operator Description
Pre increment operator (++x) value of x is incremented before assigning
it to the variable on the left
x = 10 ; After execution
x = 10 ; After execution
p = x++; x will be 11
p will be 10
First assign value of x
C++ Basics 28
What is the output of this program?
#include <iostream>
using namespace std;
int main ()
{
int x, y;
x = 5;
y = ++x * ++x;
cout << x << y;
I like C++ so much
x = 5;
y = x++ * ++x;
I will score good marks in C++
}
cout << x << y;
(A) 749735
(B) 736749
(C) 367497
(D) none of the mentioned
C++ Basics 29
Conditional Operator
Syntax:
exp1 ? exp2 : exp3
Working of the ? Operator:
exp1 is evaluated first
I •like C++ so much
if exp1 is true(nonzero) then
- exp2 is evaluated and its value becomes the value of the expression
• If exp1 is false(zero) then
I will score
- exp3 good
is evaluated marks
and its value invalueC++
becomes the of the expression
Ex: Ex:
m=2; m=2;
n=3; n=3;
r=(m>n) ? m : n; r=(m<n) ? m : n;
Value of r will be 3 Value of r will be 2
C++ Basics 30
Bitwise Operator
Operator Meaning
& Bitwise AND
| Bitwise OR
^ Bitwise exclusive OR
I like C++ so much
<< Shift left
>> Shift right
I will score good marks in C++
C++ Basics 31
Bitwise Operator Examples
8 = 1000 (In Binary)
6 = 0110 (In Binary)
Bitwise & (AND) Bitwise | (OR)
int a=8,b=6,c; int a=8,b=6,c;
c = a & b; c = a | b;
I like C++ so much
cout<<"Output ="<< c; cout<<"Output ="<< c;
Output = 0 Output = 14
I will
Bitwise score
<< (Shift Left) good marks in Right)
Bitwise >> (Shift C++
int a=8,b=6,c; int a=8,b=6,c;
c = a << 1; c = a >> 1;
cout<<"Output ="<< c; cout<<"Output ="<< c;
Output = 16 Output = 4
left shifting is the equivalent of right shifting is the equivalent
multiplying a by a power of two of dividing a by a power of two
C++ Basics 32
New Operators in C++
It allows to access to the global
version of variable
:: Scope Resolution Declares a pointer to a member of
a class
::* Pointer-to-member declarator
->* Pointer-to-member operator To access pointer to class members
I .*likePointer-to-member
C++ so much operator To access pointer to data members
of class
Inew
willMemory
score good
allocation operatormarks in C++
Allocates memory at run time
delete Memory release operator
endl Line feed operator Deallocates memory at run time
C++ Basics 35
#include <iostream>
Scope resolution example
using namespace std;
int m=10; Global declaration of variable m
int main()
{
int m=20; variable m declared , local to main
{
int k=m;
int m=3;
cout<<"we are in inner block\n";
cout<<"k="<<k<<endl; variable m
cout<<"m="<<m<<endl; declared again local to inner block
cout<<"::m="<<::m<<endl;
} Output:
cout<<"we are in outer block\n"; we are in inner block
cout<<"m="<<m<<endl; k=20
cout<<"::m="<<::m<<endl; m=3
return 0; ::m=10
} we are in outer block
m=20
::m=10
C++ Data Types
Basic Data types
C++ datatypes
C++ Basics 38
Built in Data types
Data Type Size (bytes) Range
char 1 -128 to 127
unsigned char 1 0 to 255
short or int 2 -32,768 to 32,767
Iunsigned
like intC++ so much
2 0 to 65535
I will score good
long 4 marks
-2147483648in C++
to 2147483647
unsigned long 4 0 to 4294967295
float 4 3.4e-38 to 3.4e+308
double 8 1.7e-308 to 1.7e+308
long double 10 3.4e-4932 to 1.1e+4932
C++ Basics 39
Type Conversion
Type Conversion
Type Conversion is the process of converting one predefined data
type into another data type.
Type Conversion
I like C++ so much
I will score good
Implicit
marks in
Explicit
C++
(Automatically converts (Forcefully converts one
one datatype to another datatype to another
datatype) datatype)
C++ Basics 41
Type Conversion(Cont…)
int a;
double b=2.55;
a = b; // implicit type conversion
Icout
like<< C++ so much
a << endl; // this will print 2
a = int(b); //explicit type conversion
Icout
will<< score good marks in C++
a << endl; // this will print 2
C++ Basics 42
Implicit type conversion hierarchy
long
I like C++ so much float double double
long int
I will score intgood marks in C++
unsigned
int
char
C++ Basics 43
Implicit Type Conversion
#include <iostream>
using namespace std;
ans = count * avg
int main()
{ 5 10.01
int count = 5;
I like C++ so much
float avg = 10.01;
double ans;
double int float
I will average
score= good marks in C++
sum/float (i); //C++ notation
C++ Basics 45
#include <iostream>
using namespace std;
int main()
Type Casting Example
{
int a, b, c;
a = 19.99 + 11.99; //adds the values as float
// then converts the result to int
b = (int) 19.99 + (int) 11.99; // old C syntax
c = int (19.99) + int (11.99); // new C++ syntax
char ch = 'Z';
cout << "The code for " << ch << " is "; //print as char
cout << int(ch) << endl; //print as int
return 0;
}
Output:
a = 31, b = 30, c = 30
The code for Z is 90
Reference Variable
Reference Variable
A reference provides an alias or a different name for a variable.
One of the most important uses for references is in passing
arguments to functions.
declares variable a
int a=5;
I like C++ so much OUTPUT
int &ans = a; declares ans as reference to a
Its necessary to
Icout<<"a="<<a<<endl;
will score good
cout<<"&a="<<&a<<endl;
marks
a=5 in C++
initialize the
&a=0x6ffe34 Reference at the
time of declaration
cout<<"ans="<<ans<<endl; ans=5
cout<<"&ans="<<&ans<<endl; &ans=0x6ffe34
ans++;
cout<<"a="<<a<<endl; a=6
cout<<"ans="<<ans<<endl; ans=6
C++ Basics 48
Reference Variable(Cont…)
C++ references allow you to create a second name for the a
variable.
Reference variable for the purpose of accessing and modifying the
value of the original variable even if the second name (the
I like C++ so much
reference) is located within a different scope.
C++ Basics 49
Reference Vs Pointer
References Pointers
int i; int *p = &i;
int &r = i;
C++ Basics 50
Enumeration
Enumeration (A user defined Data Type)
An enumeration is set of named integer constants.
Enumerations are defined much like structures.
enum days{Sun,Mon,Tues,Wed,Thur,Fri,Sat};
0 1 2 3 4 5 6
I like C++
Keyword
Tag
so much
I will name
score Integer
good marks in C++
Values for symbolic constants
C++ Basics 52
Enumeration Behaviour(Cont…)
enum coin { penny, nickel, dime, quarter=100,
half_dollar, dollar};
dollar 102
C++ Basics 53
Enumeration Behaviour
enum days{ sun, mon, tue, wed, thu, fri, sat };
days today; variable today declared of type days
C++ Basics 56
Thank You
Object Oriented
Programming with C++
C++ Functions
C++ Functions
C++ Function
A function is a group of statements that together perform a task.
Functions are made for code reusability and for saving time and
space.
Function
C++ Functions 3
C++ Function – (Cont…)
There are three elements of user defined function
C++ Functions 4
Simple Function – (Cont…)
Function Declaration
Syntax:
return-type function-name (arg-1, arg 2, …);
Example: int addition(int , int );
Function Definition
Syntax:
return-type function-name (arg-1, arg 2, …)
{
... Function body
}
Example: int addition(int x, int y)
{
return x+y;
}
Categories of Function
(1) Function with arguments and returns value
Function arguments/
parameters
Function func1
I like C++ so much
{
....
I like Rupesh sir
returns integer value
to variable z
int z = func1(5,6); \\function call
}
int func1(int a, int b) \\definition
{
....
return a+b;
} returns a+b to calling function
C++ Functions 6
Categories of Function (Cont…)
(2) Function with arguments but no return value
C++ Functions 7
Categories of Function (Cont..)
(3) Function with no argument but returns value
int func1();
void main()
{
....
I like C++ so much
int z = func1();
}
I like Rupesh sir
int func1()
{
....
return 99;
}
C++ Functions 8
Categories of Function (Cont…)
(4) Function with no argument and no return value
void func1();
void main()
{
....
I like C++ so much
func1();
}
I like Rupesh sir
void func1()
{
....
....
}
C++ Functions 9
Program: Categories of function
Write C++ programs to demonstrate various categories of
function, Create function addition for all categories.
C++ Functions 10
Function with argument and returns value
#include <iostream> Value of
using namespace std; int main() Argument int fun1(int f)
{ {
..... .....
int add(int, int); b = fun1(a); .....
..... return e;
int main(){
I like C++ so much
int a=5,b=6,ans;
} Function
Result
}
int add(); No
int main() Input int fun1()
{ {
int main() ..... .....
{ b = fun1(); .....
..... return e;
int ans;
ans = add();
I like C++ so much
} Function
Result
}
C++ Functions 14
Categories of Functions Summary
(1) Function with argument and returns value
Value of
int main() Argument int fun1(int f)
{ {
..... .....
b = fun1(a); .....
I like
(2) Function with Rupesh
argument sir value
and but no return
Value of
int main() Argument void fun1(int f)
{ {
..... .....
fun1(a); .....
..... .....
} No Return }
value
C++ Functions 15
Categories of Functions Summary
(3) Function with no argument and returns value
No
int main() Input int fun1()
{ {
..... .....
b = fun1(); .....
I like
(4) Function with Rupesh
no argument sir
and but no return value
No
int main() Input void fun1()
{ {
..... .....
fun1(); .....
..... .....
} No Return }
value
C++ Functions 16
Call by Reference
Call by reference
The call by reference method of passing arguments to a function
copies the reference of an argument into the formal parameter.
Inside the function body, the reference is used to access the actual
argument used in the call.
Actual Parameters
I like C++ so much int main(){
add(a,b);
I like Rupesh sir } Formal Parameters
C++ Functions 19
Program: Solution
void swapptr(int *x, int *y)
{
int z = *x; Pointers as arguments
*x=*y;
*y=z; References as
arguments
} I like C++ so much
void swapref(int &x, int &y)
{
int z = x;
I like Rupesh sir
int main()
x = y; {
y = z; ...
} swapptr(&a,&b);
swapref(a,b);
...
}
C++ Functions 20
Program: Solution
void swapptr(int *, int *);
void swapref(int &, int &);
int main()
{
int a = 45;
int b = 35;
cout<<"Before Swap\n";
cout<<"a="<<a<<" b="<<b<<"\n";
swapptr(&a,&b);
cout<<"After Swap with pass by pointer\n";
cout<<"a="<<a<<" b="<<b<<"\n";
swapref(a,b);
cout<<"After Swap with pass by reference\n";
cout<<"a="<<a<<" b="<<b<<"\n";
}
Program: Solution (Cont…)
void swapptr(int *x, int *y)
{
int z = *x;
*x=*y;
*y=z;
} I like C++ so much
void swapref(int &x, int &y)
{ I likeOUTPUT
Rupesh sir
int z = x;
Before Swap
x = y;
a=45 b=35
y = z;
After Swap with pass by pointer
}
a=35 b=45
After Swap with pass by reference
a=45 b=35
C++ Functions 22
Program: Return by Reference
Write a C++ program to return reference of maximum of two
numbers from function max.
C++ Functions 23
Program: Solution
int& max(int &, int &);
int main() Function declaration
{ returning reference
int a=5,b=6,ans;
ans = max(a,b);
I like C++ so much
cout<<"Maximum="<<ans;
}
I like Rupesh sir
int& max(int &x,int &y)
{
if (x>y)
return x;
else
return y;
}
C++ Functions 24
Program: Returning Reference
int x; setx() is declared with a
int& setdata(); reference type,
int main() int&
as the return type:
{ int& setx();
setdata() = 56;
I like C++ so much
cout<<"Value="<<x;
This function contains
return x;
return 0; I like Rupesh sir
You can put a call to this function
on the left side of the equal sign:
}
int& setdata() setx() = 92;
The result is that the variable
{ returned by the function is
return x; assigned the value on the right
} side of the equal sign.
C++ Functions 25
C Preprocessors
Macros
C Preprocessors Macros
C Preprocessor is a text substitution in program.
It instructs the compiler to do pre-processing before the actual
compilation.
All preprocessor commands begin with a hash symbol (#).
C++ Functions 27
C Preprocessor Macro Example
#include <stdio.h>
#define PI 3.1415
Preprocessor
#define circleArea(r) (PI*r*r)
int main()
{
int radius;
float area;
I like C++ so much
I like Rupesh sir
printf("Enter the radius: ");
scanf("%d", &radius);
area = circleArea(radius);
printf("Area = %f", area);
return 0; Every time the program encounters
} circleArea(argument), it is replaced by
(3.1415*(argument)*(argument)).
C++ Functions 28
Inline Functions
Inline Functions
Every time a function is called it takes a lot of extra time to
execute series of instructions such as
1. Jumping to the function
2. Saving registers
C++ Functions 30
Inline Functions (Cont…)
Syntax:
inline return-type function-name(parameters)
{
// function code
}
C++ Functions 32
Program: Solution
#include <iostream>
using namespace std;
C++ Functions 34
Function Overloading
Function Overloading
Suppose we want to make functions that add 2 values, add 3
values , add 4 values
In C Function with
int sum(int a, int b); same name in a
I like C++ so much
int sum(int a, int b, int c);
int sum(int a, int b, int c, int d);
program is not
allowed in C
I like Rupesh sir language
C++ Functions 37
Function Overloading
int sum(int a, int b); Valid
C++ Functions 38
Program: Function overloading
Write a C++ program to demonstrate function overloading. Create
function display() with different arguments but same name
C++ Functions 39
Program: Solution (Cont…)
void display(int var)
{
cout << "Integer number: " << var << endl;
}
I like C++ so much
void display(float var)
{
C++ Functions 40
Program: Solution
int main()
{
int a = 5; float b = 5.5;
display(a);
display(b);
I like C++ so much
display(a, b);
return 0;
} I like Rupesh sir
C++ Functions 41
Program: Function overloading
Write a C++ program to demonstrate function overloading. Create
function area() that calculates area of circle, triangle and box.
C++ Functions 42
float area(int r)
{
Program #7
return 3.14*r*r; Solution
}
float area(int h, int b)
{
return 0.5*h*b;
}
I like C++ so much
float area(int l, int w, int h)
{
I like Rupesh sir
return l*w*h;
}
int main(){
cout<<"area of circle="<<area(5);
cout<<“\n area of triangle="<<area(4,9);
cout<<“\n area of box="<<area(5,8,2);
return 0;
}
C++ Functions 43
Default Function
Arguments
Default Function Argument
C++ Functions 48
Common Mistakes
(1) void add(int a, int b = 3, int c, int d = 4);
C++ Functions 49
Program: Default Arguments
Write a C++ program to create function sum(), that performs
addition of 3 integers also demonstrate Default Arguments
concept.
C++ Functions 50
Program: Default Arguments
#include <iostream>
using namespace std;
int sum(int x, int y=10, int z=20)
{
return (x+y+z);
} I like C++ so much
int main()
{ I like Rupesh sir
cout << "Sum is : " << sum(5) << endl;
cout << "Sum is : " << sum(5,15) << endl;
cout << "Sum is : " << sum(5,15,25) << endl;
return 0;
}
C++ Functions 51
Thank You
Object Oriented
Programming with C++
Objects &
Classes
Outline Weightage: 15%
Physical objects…
Objects and Classes 4
What is an Object? (Cont…)
Logical objects…
Bank Account
Properties (Describe)
Company Methods (Functions)
Model Start
Color Drive
Mfg. Year Park
Price On_break
Fuel Type On_lock
Mileage On_turn
Gear Type
Power Steering
Anti-Lock braking system
Objects of Class Car
Example:
class car
{ I like C++ so much
// data members and member functions
}car1; I like Rupesh sir
In above example class name is car, and car1 is object of that
class.
Class
class car
Car
{
private:
I like C++ so much
Attributes
int price;
I like Rupesh sirPrice
float mileage;
public: Mileage
void start(); Methods
void drive(); Start
}; Drive
Class
class car I like C++ so much Object
{
private: I like Rupeshintsirmain()
int price;
{
float mileage;
public: car c1;
void start(); c1.start();
void drive(); }
};
Objects and Classes 14
Object in C++
An object is an instance of a class
An object is a variable of type class
Class Object
class car I like C++ so much
{ int main()
private: I like Rupesh{ sir
int price; car c1;
float mileage; c1.start();
public: c1.drive();
void start(); }
void drive();
};
Objects and Classes 15
Program: class, object
Write a C++ program to create class Test having data members
mark and spi.
Create member functions SetData() and DisplayData()to
demonstrate class and objects.
I like C++ so much
I like Rupesh sir
Private Public
Private Members
ByPrivate
defaultmembers of the class
all the members of can
classbe
Class accessed within the class and from
are private
member functions of the class.
A private member variable or
class car
function cannot be accessed, or even
{ Private:
long int price;
I like C++ so muchviewed from outside the class.
float mileage;
void setdata()
I like Rupesh sir
This feature in OOP is known as Data
{ hiding / Encapsulation
price = 700000;
mileage = 18.5;
}
};
raj.setData(27,1800);
raj. displaydata();
return 0;
}
Objects and Classes 41
Program: Function with
class Employee{ argument
private :
int age; int salary;
public :
void setData(int , int);
void displaydata();
}; I like C++ so much
void Employee::setData(int x, int y){
age=x; I like Rupesh sir
salary=y;
}
void Employee::displaydata(){
cout<<"age="<<age<<endl;
cout<<"salary="<<salary<<endl;
}
Objects and Classes 42
Passing Objects as Function
Arguments
Function with argument and returns value
#include <iostream> Value of
using namespace std; int main() Argument int fun1(int f)
{ {
..... .....
int add(int, int); b = fun1(a); .....
..... return e;
int main(){
int a=5,b=6,ans;
I like C++ so much
} Function
Result
}
ans = add(a,b);
I like Rupesh sir
cout<<"Addition is="<<ans;
return 0;
}
int add(int x,int y)
{
return x+y;
}
Objects and Classes 44
Object as Function arguments
time
int time
int
t1
a t2
b
Function
I like C++ so much
void add(intI x,
like Rupesh
int y) void sir
addtime(time x, time y)
{ {
statements… statements…
} }
int main() int main()
{ {
int a=5,b=6; time t1,t2,t3;
add(a,b); t3.addtime(t1,t2);
} }
Objects and Classes 45
Object as Function arguments
t1.getTime();
t1.printTime();
t2.getTime();
t2.printTime();
t3.addTime(t1,t2);
cout<<"\nafter adding two objects";
t3.printTime();
return 0;
}
t3.addTime(t1,t2);
Function Declaration
void addTime(Time x, Time y)
{
hour = x.hour + y.hour;
minute = x.minute + y.minute;
second = x.second + y.second;
}
Program: Passing object as argument
Define class Complex with members real and imaginary .
Also define function to setdata() to initialize the members,
print() to display values and addnumber() that adds two
complex objects.
Function result
I like C++ so much
int add(int I
x,like
int y)Rupesh sir
time addtime(time x, time y)
{ {
return return //object of class time
} }
int main() int main()
{ {
int a=5,b=6,result; time t1,t2,t3,result;
result = add(a,b); result = t3.addtime(t1,t2);
} }
Objects and Classes 53
Passing and returning object
t1.getTime();
t1.printTime();
t2.getTime();
t2.printTime();
ans=t3.addTime(t1,t2);
cout<<"\nafter adding two objects";
ans.printTime();
return 0;
}
Program: Returning object
C++ program to add two complex numbers by Pass and Return
Object from the Function.
printdata();
}
Member function 2
Object A3
int main(){
Account A1,A2,A3; Account No 103
A1.setdata(101,“Current“,3400); Account Type Current
A2.setdata(102,“Saving“,150);
Balance 7900
A3.setdata(103,“Current“,7900);
return 0;
}
Static Data members / variables
Static Data members
A static data member is useful,
when all objects of the same class must share a common
information.
int demo::count;
d1 d2 d3
int main()
{
demo d1,d2,d3;
d1.getcount(); Static members are declared inside
d2.getcount(); the class and defined outside the
d3.getcount(); class.
return 0;
}
class demo
Regular Data members
{
int count;
public:
void getcount()
{
count = 0; d1 d3
cout<<"count="<< ++count;
d2
}
};
int main() 10 01 10
{
demo d1,d2,d3; count count count
d1.getcount();
d2.getcount();
d3.getcount();
return 0;
}
Static Data Members
Data members of the class which are shared by all objects are known as
static data members.
Only one copy of a static variable is maintained by the class and it is
common for all objects.
Static members are declared inside the class and defined outside the
class. I like C++ so much
I like Rupesh sir
It is initialized to zero when the first object of its class is created.
you cannot initialize a static member variable inside the class
declaration.
It is visible only within the class but its lifetime is the entire program.
Static members are generally used to maintain values common to the
entire class.
}
count++;
I like Rupesh sir
void getcount(){
cout<<"\nvalue of count: "<<count;
}
};
int item :: count; // static variable definition
c.getdata(300);
a.getcount(); Output:
value of count: 1
return 0; value of count: 2
} value of count: 3
class B
{
static A a;
public:
B()
{
cout << "B's constructor called " << endl;
}
};
A B::a; // definition of a
Output:
int main() A's constructor called
{
B's constructor called
B b1, b2, b3;
return 0;
B's constructor called
} B's constructor called
Static Member Functions
Static Member Functions
Static member functions can access only static members of the
class.
Static member functions can be invoked using class name, not
object.
I like C++ so much
There cannot be static and non-static version of the same
function.
I like Rupesh sir
They cannot be virtual.
They cannot be declared as constant or volatile.
A static member function does not have this pointer.
}
count++;
I like Rupesh sir
static void getcount(){
cout<<”value of count: “<<count;
}
};
int item :: count; // static variable definition
a.getdata(100);
I like C++ so much
item::getcount();
c.getdata(300); Output:
item::getcount(); value of count: 1
return 0; value of count: 2
} value of count: 3
};
}
I like Rupesh
function sir
};
}
};
int main()
{
Rectangle r1;
return 0;
}
Objects and Classes 98
Types of Constructors
Types of Constructors
1) Default constructor
2) Parameterized constructor
3) Copy constructor
breadth=2;
}
I like Rupesh sir
void Calculate(){
cout<<"\narea="<<length * breadth;
} A1 A2
};
length breadth length breadth
5 2 5 2
Objects and Classes 102
2) Parameterized Constructor
Constructors that can take arguments are called parameterized
constructors.
Sometimes it is necessary to initialize the various data elements of
different objects with different values when they are created.
I like C++ so much
We can achieve this objective by passing arguments to the
constructor function when the objects are created.
I like Rupesh sir
int main()
{
rectangle r1; // Invokes default constructor
rectangle r2(10,20); // Invokes parameterized
constructor
rectangle r3(r2); // Invokes copy constructor
}
Destructor
Destructor class car
{
• Destructor is used to destroy the objects float mileage;
public:
that have been created by a constructor. car(){
• The syntax for destructor is same as that cin>>mileage;
}
for the constructor,
– the class name is used for the name of ~car(){
cout<<" destructor";
destructor, }
– with a tilde (~) sign as prefix to it.
};
Destructor
never takes any argument nor it returns any value nor it has return
type.
is invoked automatically by the complier upon exit from the
program.
should be declared in the public section.
Program: Destructor
class rectangle int main()
{ {
int length, width; rectangle x;
public: // default
rectangle(){ //Constructor constructor is
length=0;
width=0; I like C++ so much
called
}
cout<<”Constructor Called”;
} I like Rupesh sir
~rectangle() //Destructor
{
cout<<”Destructor Called”;
}
// other functions for reading, writing and
processing can be written here
};
Objects and Classes 114
Program: Destructor
class Marks{ int main( )
public: {
int maths; Marks m1;
int science; Marks m2;
//constructor return 0;
Marks() { I like C++ so much
cout << "Inside Constructor"<<endl;
}
}
I like Rupesh sir
cout << "C++ Object created"<<endl;
//Destructor
~Marks() {
cout << "Inside Destructor"<<endl;
cout << "C++ Object destructed"<<endl;
}
};
Objects and Classes 115
Operator Overloading
Operator Overloading
int a=5, b=10,c; Operator + performs
c = a + b; addition of
integer operands a, b
}
// statements
I like Rupesh sir
Keyword substitute the operator
Example:
void operator + (arguments);
int operator - (arguments);
class-name operator / (arguments);
float operator * (arguments);
Objects and Classes 120
Overloading Binary operator + int main()
class complex{ {
int real,imag; complex c1(4,6),c2(7,9);
public: complex c3;
complex(){ c3 = c1 + c2;
real=0; imag=0; c1.disp();
} c2.disp();
complex(int x,int y){ c3.disp();
real=x; imag=y; return 0;
} }
void disp(){
cout<<"\nreal value="<<real<<endl;
cout<<"imag value="<<imag<<endl;
}
complex operator + (complex);
};
complex complex::operator + (complex c){
complex tmp;
tmp.real = real + c.real; Similar to function call
tmp.imag = imag + c.imag;
return tmp;
c3=c1.operator +(c2);
}
Binary Operator Arguments
result = obj1.operator symbol (obj2);//function notation
result = obj1 symbol obj2; //operator notation
complex operator + (complex x)
{
complex tmp;
tmp.real = real + x.real;
tmp.imag = imag + x.imag;
return tmp;
}
result = obj1.display();
void display()
{
cout<<"Real="<<real;
cout<<"Imaginary="<<imag;
}
Operator Overloading
Operator overloading is compile time polymorphism.
You can overload most of the built-in operators available in C++.
+ - * / % ^
& | ~ ! , =
< I like C++ so much
> <= >= ++ --
<< >> == != && ||
+= I like Rupesh sir
-= /= %= ^= &=
|= *= <<= >>= [] ()
-> ->* new new [] delete delete []
}
m = x;
I like C++ so much
void operator ++()
{
++m;
I like Rupesh sir
cout<<"Pre Increment="<<m;
}
void operator ++(int)
{
m++;
cout<<"Post Increment="<<m;
}
};
Objects and Classes 130
Invoking Operator Function
Binary operator
operand1 symbol operand2
Unary operator
operand symbol
symbol operand
I like C++ so much
I like Rupesh
Binary operator using friend function
operator symbol (operand1,operand2)
sir
Unary operator using friend function
operator symbol (operand)
?: Conditional Operator
int a;
I like C++
float b = 10.54; so much
a = 10;
float is converted to integer automatically
a = b; by complier.
integer float
I like Rupesh sir
basic to basic type conversion.
(Basic) (Basic)
Time integer
(Class) (Basic)
Syntax:
I like Rupesh sir
operator destinationtype()
{
....
return
}
}
a=10.23;
I like C++ so much
}
return 0;
{
I like Rupesh sir
function
Explicit type conversion
int x; y = int (S);
x=a;
return x;
Automatic type conversion
} y = S;
};