0% found this document useful (0 votes)
15 views

Presentations PPT 3

Uploaded by

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

Presentations PPT 3

Uploaded by

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

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

Library Function User Defined Function

Predefined Created by User


Declarations inside header files Programmer need to declare it
Eg. printf() – stdio.h Eg. factorial()
pow() – cmath.h areaofcircle()
strcmp() – cstring.h
C++ Function – (Cont…)
 There are three elements of user defined function

void func1(); Function Declaration


void main()
{
....
func1(); Function call
}
void func1()
{
.... Function
Function
definition
.... body
}
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

Return type int func1(int , int ); \\declaration


void main()
{
Function func1 ....
returns integer value int z = func1(5,6); \\function call
to variable z }
int func1(int a, int b) \\definition
{
....
return a+b;
} returns a+b to calling function
Categories of Function (Cont…)
(2) Function with arguments but no return value

void func1(int , int ); \\function declaration


void main()
{
....
func1(5,6); \\function call
}
void func1(int a, int b) \\function definition
{
....
....
}
Categories of Function (Cont..)
(3) Function with no argument but returns value

int func1();
void main()
{
....
int z = func1();
}
int func1()
{
....
return 99;
}
Categories of Function (Cont…)
(4) Function with no argument and no return value
void func1();
void main()
{
....
func1();
}
void func1()
{
....
....
}
Program: Categories of function
 Write C++ programs to demonstrate various categories of
function, Create function addition for all categories.
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(){ } Function }
int a=5,b=6,ans; Result

ans = add(a,b);
cout<<"Addition is="<<ans;
return 0;
}
int add(int x,int y)
{
return x+y;
}
Function with arguments but no return value
#include <iostream>
Value of
using namespace std; int main() Argument void fun1(int f)
{ {
..... .....
void add(int, int); fun1(a); .....
int main() ..... .....
{ } No Return }
int a=5,b=6; value

add(a,b);
return 0;
}
void add(int x,int y)
{
cout<<"Addition is="<<x+y;
}
Function with no argument but returns value

int add(); No
int main() Input int fun1()
{ {
int main() ..... .....
{ b = fun1(); .....
int ans; ..... return e;
} Function }
ans = add(); Result
cout<<"Addition is="<<ans;
return 0;
}
void add()
{
int a=5,b=6;
return a+b;
}
Function with no argument and no return value
void add();
No
int main() Input void fun1()
int main() { {
{ ..... .....
fun1(); .....
add(); ..... .....
return 0; } No Return }
} value
void add()
{
int a=5,b=6;
cout<<"Addition is="<<a+b;
}
Categories of Functions Summary
(1) Function with argument and returns value
Value of
int main() Argument int fun1(int f)
{ {
..... .....
b = fun1(a); .....
..... return e;
} Function }
Result
(2) Function with argument and but no return value
Value of
int main() Argument void fun1(int f)
{ {
..... .....
fun1(a); .....
..... .....
} No Return }
value
Categories of Functions Summary
(3) Function with no argument and returns value
No
int main() Input int fun1()
{ {
..... .....
b = fun1(); .....
..... return e;
} Function }
Result
(4) Function with no argument and but no return value
No
int main() Input void fun1()
{ {
..... .....
fun1(); .....
..... .....
} No Return }
value
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
int main(){
add(a,b);
} Formal Parameters

void add(int x,int y){


cout << x+y;
Note: }
 Actual parameters are parameters as they appear in function calls.
 Formal parameters are parameters as they appear in function
declarations / definition.
Program: Swap using pointer, reference
 Write a C++ program that to swap two values using function
1. With pass by pointer
2. With pass by reference
Program: Solution
void swapptr(int *x, int *y)
{
int z = *x;  Pointers as arguments
*x=*y;
*y=z;  References as
} arguments
void swapref(int &x, int &y)
{
int z = x; int main()
x = y; {
y = z; ...
} swapptr(&a,&b);
swapref(a,b);
...
}
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;
}
void swapref(int &x, int &y)
{
int z = x; OUTPUT
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
Program: Return by Reference
 Write a C++ program to return reference of maximum of two
numbers from function max.
Program: Solution
int& max(int &, int &);
int main()  Function declaration
{ returning reference
int a=5,b=6,ans;
ans = max(a,b);
cout<<"Maximum="<<ans;
}
int& max(int &x,int &y)
{
if (x>y)
return x;
else
return y;
}
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; This function contains
cout<<"Value="<<x; return x;
return 0;  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 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 Preprocessor Macro Example
#include <stdio.h>
#define PI 3.1415
Preprocessor
#define circleArea(r) (PI*r*r)
int main()
{
int radius;
float area;
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)).
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
3. Pushing arguments into stack
4. Returning to the calling function
 If a function body is small then overhead time is more than actual
code execution time so it becomes more time consuming.
 Preprocessor macros is a solution to the problem of small
functions in C.
 In C++, inline function is used to reduce the function call
overhead.
Inline Functions (Cont…)
Syntax:
inline return-type function-name(parameters)
{
// function code
}
 Add inline word before the function definition to convert simple
function to inline function.
Example:
inline int Max(int x, int y)
{
if (x>y)
return x;
else
return y;
}
Program: Inline function
 Write a C++ program to create inline function that returns cube of
given number (i.e n=3, cube=(n*n*n)=27).
Program: Solution
#include <iostream>
using namespace std;

inline int cube(int s)


{
return s*s*s;
}
int main()
{
cout << "The cube of 3 is: " << cube(3);
return 0;
}
 Calls inline function cube with argument 3
Critical situations Inline Functions
 Some of the situations inline expansion may not work
1) If a loop, a switch or a goto exists in function body.
2) If function is not returning any value.
3) If function contains static variables.
4) If function is recursive.
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
int sum(int a, int b, int c); program is not
int sum(int a, int b, int c, int d); allowed in C
language

In C++ Function with


int sum(int a, int b); same name in a
int sum(int a, int b, int c); program is
int sum(int a, int b, int c, int d); allowed in C++
language
Function overloading – Cont…
 C++ provides function overloading which allows to use multiple
functions sharing the same name .
 Function overloading is also known as Function Polymorphism in
OOP.
 It is the practice of declaring the same function with different
signatures.

 However, the two functions with the same name must differ in at
least one of the following, Arguments
a) The number of arguments make the
b) The data type of arguments function
c) The order of appearance of arguments unique

 Function overloading does not depends on return type.


Function Overloading
int sum(int a, int b); Valid

float sum(int a, int b); Invalid

int sum(int a, int c); Invalid

int sum(int a, float b); Valid

int sum(float b, int a); Valid

float sum(float a, float b); Valid

int sum(int a, int b, int c); Valid

int sum(int a, float b, int c); Valid


Program: Function overloading
 Write a C++ program to demonstrate function overloading. Create
function display() with different arguments but same name
Program: Solution (Cont…)
void display(int var)
{
cout << "Integer number: " << var << endl;
}
void display(float var)
{
cout << "Float number: " << var << endl;
}
void display(int var1, float var2) {
cout << "Integer number: " << var1;
cout << " and float number:" << var2;
}
Program: Solution
int main()
{
int a = 5; float b = 5.5;
display(a);
display(b);
display(a, b);
return 0;
}
Program: Function overloading
 Write a C++ program to demonstrate function overloading. Create
function area() that calculates area of circle, triangle and box.
float area(int r)
{ Program #7
return 3.14*r*r; Solution
}
float area(int h, int b)
{
return 0.5*h*b;
}
float area(int l, int w, int h)
{
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;
}
Default Function
Arguments
Default Function Argument

int cubevolume(int l=5, int w=6, int h=7)


{
return l*w*h;
}
int main() Here, there can be
If argument fourspecified
is not types ofthen,
function
{ compiler lookscalls possible to see how
at declaration
cubevolume(); many arguments a function uses and
cubevolume(9);
alert program to use default values
cubevolume(15,12);
cubevolume(3,4,7);
}
Default Argument Example
int volume(int l=5,int w=6, int h=7)
{
return l*w*h;
}
int main() {
cout<<"volume="<<volume()<<endl;
cout<<"volume="<<volume(9)<<endl;
cout<<"volume="<<volume(15,2)<<endl;
cout<<"volume="<<volume(3,4,7)<<endl;
return 0;
}
 Function call passing
withoutonly
passing
all
two oneargument.
argument.
arguments.
arguments.
 Explicitly value5,6,7
Default value 9
3,4,7
15,2
passed to l.totol,w
considered
passed
passed for l,
l,w,h w, h respectively.
respectively.
respectively.
 Default value 6,7
7 considered
considered h w,h
for for respectively.
respectively.
Default Arguments
 while invoking a function If the argument/s are not passed then,
the default values are used.
 We must add default arguments from right to left.
 We cannot provide a default value to a particular argument in the
middle of an argument list.
 Default arguments are useful in situations where some arguments
always have the same value.

int cubevolume( int l = 2, int w = 2, int h = 2 )


{
return l*w*h;
}
Default Arguments (Cont…)
 Legal and illegal default arguments
void f(int a, int b, int c=0); Valid
void f(int a, int b=0, int c=0); Valid
void f(int a=0, int b, int c=0); Invalid
void f(int a=0, int b, int c); Invalid
void f(int a=0, int b=0, int c=0); Valid
Common Mistakes
(1) void add(int a, int b = 3, int c, int d = 4);

 You cannot miss a default argument in between two arguments.


 In this case, c should also be assigned a default value.

(2) void add(int a, int b = 3, int c, int d);

 If you want a single default argument, make sure the argument is


the last one.
Program: Default Arguments
 Write a C++ program to create function sum(), that performs
addition of 3 integers also demonstrate Default Arguments
concept.
Program: Default Arguments
#include <iostream>
using namespace std;
int sum(int x, int y=10, int z=20)
{
return (x+y+z);
}
int main()
{
cout << "Sum is : " << sum(5) << endl;
cout << "Sum is : " << sum(5,15) << endl;
cout << "Sum is : " << sum(5,15,25) << endl;
return 0;
}
Thank You

You might also like