SlideShare a Scribd company logo
1 of 23
Name – Tarandeep Kaur
Section – N2
Roll No. – 115331
 Definition of functions
 Function calling
 Function definition
 Void function
 Remarks on function
 Local v/s Global variables
 Function call methods
 Concept of recursion
 Function overloading
 A function is a subprogram that acts on data
and often returns a value.
 Functions invoked by a function–call-statement which
consist of it’s name and information it needs (arguments)
 Boss To Worker Analogy
 A Boss (the calling/caller function) asks a worker (the
called function) to perform a task and return result when
it is done.
Main
Boss
Function A Function B Function Z
Worker
Worker
Function B2Function B1
Worker
Worker Worker
Note: usual main( ) Calls other
functions, but other functions
can call each other
 Function Arguments can be:
- Constant sqrt(9);
- Variable sqrt(x);
- Expression sqrt( x*9 + y) ;
sqrt( sqrt(x) ) ;
• Functions called by writing
functionName (argument);
or
functionName(argument1, argument2, …);
• Example
cout << sqrt( 900.0 );
• sqrt (square root) function
• The preceding statement would print 30
• All functions in math library return a double
cout<< sqrt(9);
Function Name argument
3
Output
Parentheses used to enclose argument(s)
• Calling/invoking a function
– sqrt(x);
– Parentheses an operator used to call function
• Pass argument x
• Function gets its own copy of arguments
– After finished, passes back result
 Functions
◦ Modularize a program
◦ Software reusability
 Call function multiple times
 Local variables
◦ Known only in the function in which they are defined
◦ All variables declared in function definitions are local variables
 Parameters
◦ Local variables passed to function when called
◦ Provide outside information
 Function prototype
◦ Tells compiler argument type and return type of function
◦ int square( int );
 Function takes an int and returns an int
◦ Explained in more detail later
 Calling/invoking a function
◦ square(x);
◦ Parentheses an operator used to call function
 Pass argument x
 Function gets its own copy of arguments
◦ After finished, passes back result
 Example function
int square( int y )
{
return y * y;
}
 return keyword
◦ Returns data, and control goes to function’s
caller
 If no data to return, use return;
◦ Function ends when reaches right brace
 Control goes to caller
 Functions cannot be defined inside other
functions
// Creating and using a programmer-defined function.
#include <iostream.h>
int square( int ); // function prototype
int main()
{
// loop 10 times and calculate and output
// square of x each time
for ( int x = 1; x <= 10; x++ )
cout << square( x ) << " "; // function call
cout << endl;
return 0; // indicates successful termination
} // end main
// square function definition returns square of an integer
int square( int y ) // y is a copy of argument to function
{
return y * y; // returns square of y as an int
} // end function square
Definition of square. y is a
copy of the argument passed.
Returns y * y, or y squared.
Function prototype: specifies
data types of arguments and
return values. square
expects an int, and returns
an int.
Parentheses () cause function to be called.
When done, it returns the result.
1 4 9 16 25 36 49 64 81 100
} // end main
// function maximum definition. x, y and z are parameters
double maximum( double x, double y, double z )
{
double max = x; // assume x is largest
if ( y > max ) // if y is larger,
max = y; // assign y to max
if ( z > max ) // if z is larger,
max = z; // assign z to max
return max; // max is largest value
} // end function maximum
// Finding the maximum of three floating-point (real) numbers.
#include <iostream.h>
double maximum( double, double, double ); // function prototype
int main()
{
double number1, number2;
double number3;
cout << "Enter three real numbers: ";
cin >> number1 >> number2 >> number3;
// number1, number2 and number3 are arguments to the maximum function call
cout << "Maximum is: "
<< maximum( number1, number2, number3 ) << endl;
return 0; // indicates successful termination
Enter three real numbers: 99.32 37.3 27.1928
Maximum is: 99.32
Enter three real numbers: 1.1 3.333 2.22
Maximum is: 3.333
Function maximum takes 3
arguments (all double) and
returns a double.
 Function prototype contains
◦ Function name
◦ Parameters (number and data type)
◦ Return type (void if returns nothing)
◦ Only needed if function definition after function call
 Prototype must match function definition
◦ Function prototype
double maximum( double, double, double );
◦ Definition
double maximum( double x, double y, double z
)
{
…
}
If the Function does not RETURN result, it is called void
Function
#include<iostream.h>
void add2Nums(int,int);
main()
{ int a, b;
cout<<“enter tow Number:”;
cin >>a >> b;
add2Nums(a, b)
return 0;
}
void add2Nums(int x, int y)
{
cout<< x<< “+” << y << “=“ << x+y;
}
If the function Does Not Take Arguments specify this with EMPTY-LIST OR
write void inside
#include<iostream.h>
void funA();
void funB(void)
main()
{
funA();
funB();
return 0;
}
void funA()
{
cout << “Function-A takes no arqumentsn”;
}
void funB()
{
cout << “Also Function-B takes No argumentsn”;
}
Will be the same
in all cases
 Local variables
◦ Known only in the function in which they are defined
◦ All variables declared inside a function are local variables
 Parameters
◦ Local variables passed to function when called (passing-
parameters)
 Variables defined outside and before function main:
◦ Called global variables
◦ Can be accessible and used anywhere in the entire
program
#include<iostream.h>
int x,y; //Global Variables
int add2(int, int); //prototype
main()
{ int s;
x = 11;
y = 22;
cout << “global x=” << x << endl;
cout << “Global y=” << y << endl;
s = add2(x, y);
cout << x << “+” << y << “=“ << s;
cout<<endl;
cout<<“n---end of output---n”;
return 0;
}
int add2(int x1,int y1)
{ int x; //local variables
x=44;
cout << “nLocal x=” << x << endl;
return x1+y1;
}
global x=11
global y=22
Local x=44
11+22=33
---end of output---
 Call by value
• A copy of the value is passed
 Call by reference
• The caller passes the address of the value
 Call by value
 Up to this point all the calls we have seen are call-by-value, a copy
of the value (known) is passed from the caller-function to the called-
function
 Any change to the copy does not affect the original value in the
caller function
 Advantages, prevents side effect, resulting in reliable software
 Call By Reference
 We introduce reference-parameter, to perform call by reference. The caller
gives the called function the ability to directly access the caller’s value, and to
modify it.
 A reference parameter is an alias for it’s corresponding argument, it is stated in
c++ by “flow the parameter’s type” in the function prototype by an
ampersand(&) also in the function definition-header.
 Advantage: performance issue
void function_name (type &);// prototype
main()
{
-----
------
}
void function_name(type &parameter_name)
#include<iostream.h>
int squareVal(int); //prototype call by value function
void squareRef(int &); // prototype call by –reference function
int main()
{ int x=2; z=4;
cout<< “x=“ << x << “before calling squareVal”;
cout << “n” << squareVal(x) << “n”; // call by value
cout<< “x=“ << x << “After returning”
cout<< “z=“ << z << “before calling squareRef”;
squareRef(z); // call by reference
cout<< “z=“ << z<< “After returning squareRef”
return 0;
}
int squareVal(int a)
{
return a*=a; // caller’s argument not modified
}
void squarRef(int &cRef)
{
cRef *= cRef; // caller’s argument modified
}
x=2 before calling squareVal
4
x=2 after returning
z=4 before calling squareRef
z=16 after returning squareRef
 Main calls another function…..normal
 A function calls another function2….normal
 A function calls itself ?! Possible?? YES
A recursive function is one that call itself.
 A recursive function is called to solve a problem
 The function knows to solve only the simplest cases
or so-called base-cases
 Thus if the function called with a base-case, it simply
returns a result. But if it is called with more complex
problem, the function divides the problem into two
conceptual pieces, one knows how to do, and another
doesn't know what to do.
 The second case/piece must resemble the original
problem, but be a slightly simpler/smaller version of
the original problem
 Function overloading
◦ Functions with same name and different parameters
◦ Should perform similar tasks
 I.e., function to square ints and function to square floats
int square( int x) {return x * x;}
float square(float x) { return x * x; }
 A call-time c++ complier selects the proper function by
examining the number, type and order of the parameters
 THANKS

More Related Content

What's hot (20)

Call by value or call by reference in C++
Call by value or call by reference in C++Call by value or call by reference in C++
Call by value or call by reference in C++
 
The Ring programming language version 1.5.2 book - Part 20 of 181
The Ring programming language version 1.5.2 book - Part 20 of 181The Ring programming language version 1.5.2 book - Part 20 of 181
The Ring programming language version 1.5.2 book - Part 20 of 181
 
C++ lecture 03
C++   lecture 03C++   lecture 03
C++ lecture 03
 
C++ programming function
C++ programming functionC++ programming function
C++ programming function
 
functions
functionsfunctions
functions
 
Advanced C - Part 2
Advanced C - Part 2Advanced C - Part 2
Advanced C - Part 2
 
Learning C++ - Functions in C++ 3
Learning C++ - Functions  in C++ 3Learning C++ - Functions  in C++ 3
Learning C++ - Functions in C++ 3
 
functions
functionsfunctions
functions
 
C++ Function
C++ FunctionC++ Function
C++ Function
 
The Ring programming language version 1.5 book - Part 4 of 31
The Ring programming language version 1.5 book - Part 4 of 31The Ring programming language version 1.5 book - Part 4 of 31
The Ring programming language version 1.5 book - Part 4 of 31
 
The Ring programming language version 1.5.1 book - Part 19 of 180
The Ring programming language version 1.5.1 book - Part 19 of 180The Ring programming language version 1.5.1 book - Part 19 of 180
The Ring programming language version 1.5.1 book - Part 19 of 180
 
Function
FunctionFunction
Function
 
Functions & Recursion
Functions & RecursionFunctions & Recursion
Functions & Recursion
 
6. function
6. function6. function
6. function
 
03 function overloading
03 function overloading03 function overloading
03 function overloading
 
Unit 6 pointers
Unit 6   pointersUnit 6   pointers
Unit 6 pointers
 
Recursion in c++
Recursion in c++Recursion in c++
Recursion in c++
 
Unit 4 (1)
Unit 4 (1)Unit 4 (1)
Unit 4 (1)
 
Call by value
Call by valueCall by value
Call by value
 
Functions in c
Functions in cFunctions in c
Functions in c
 

Viewers also liked

Functions
FunctionsFunctions
FunctionsJJkedst
 
FUNCTIONS IN c++ PPT
FUNCTIONS IN c++ PPTFUNCTIONS IN c++ PPT
FUNCTIONS IN c++ PPT03062679929
 
Intro. to prog. c++
Intro. to prog. c++Intro. to prog. c++
Intro. to prog. c++KurdGul
 
Fifty Features of Java EE 7 in 50 Minutes
Fifty Features of Java EE 7 in 50 MinutesFifty Features of Java EE 7 in 50 Minutes
Fifty Features of Java EE 7 in 50 Minutesglassfish
 
Basics of c++ Programming Language
Basics of c++ Programming LanguageBasics of c++ Programming Language
Basics of c++ Programming LanguageAhmad Idrees
 

Viewers also liked (6)

Functions
FunctionsFunctions
Functions
 
FUNCTIONS IN c++ PPT
FUNCTIONS IN c++ PPTFUNCTIONS IN c++ PPT
FUNCTIONS IN c++ PPT
 
Functions in C++
Functions in C++Functions in C++
Functions in C++
 
Intro. to prog. c++
Intro. to prog. c++Intro. to prog. c++
Intro. to prog. c++
 
Fifty Features of Java EE 7 in 50 Minutes
Fifty Features of Java EE 7 in 50 MinutesFifty Features of Java EE 7 in 50 Minutes
Fifty Features of Java EE 7 in 50 Minutes
 
Basics of c++ Programming Language
Basics of c++ Programming LanguageBasics of c++ Programming Language
Basics of c++ Programming Language
 

Similar to Functions in C++ - Concepts, Types, Overloading and Recursion

Similar to Functions in C++ - Concepts, Types, Overloading and Recursion (20)

how to reuse code
how to reuse codehow to reuse code
how to reuse code
 
Ch7 C++
Ch7 C++Ch7 C++
Ch7 C++
 
Function C++
Function C++ Function C++
Function C++
 
C++ Functions.ppt
C++ Functions.pptC++ Functions.ppt
C++ Functions.ppt
 
Fp201 unit5 1
Fp201 unit5 1Fp201 unit5 1
Fp201 unit5 1
 
Function
FunctionFunction
Function
 
Pro
ProPro
Pro
 
C++ FUNCTIONS-1.pptx
C++ FUNCTIONS-1.pptxC++ FUNCTIONS-1.pptx
C++ FUNCTIONS-1.pptx
 
C++ FUNCTIONS-1.pptx
C++ FUNCTIONS-1.pptxC++ FUNCTIONS-1.pptx
C++ FUNCTIONS-1.pptx
 
UNIT3.pptx
UNIT3.pptxUNIT3.pptx
UNIT3.pptx
 
Array Cont
Array ContArray Cont
Array Cont
 
C Programming Language Part 7
C Programming Language Part 7C Programming Language Part 7
C Programming Language Part 7
 
FUNCTIONS, CLASSES AND OBJECTS.pptx
FUNCTIONS, CLASSES AND OBJECTS.pptxFUNCTIONS, CLASSES AND OBJECTS.pptx
FUNCTIONS, CLASSES AND OBJECTS.pptx
 
Chapter 7 functions (c)
Chapter 7 functions (c)Chapter 7 functions (c)
Chapter 7 functions (c)
 
Review functions
Review functionsReview functions
Review functions
 
Chapter_1.__Functions_in_C++[1].pdf
Chapter_1.__Functions_in_C++[1].pdfChapter_1.__Functions_in_C++[1].pdf
Chapter_1.__Functions_in_C++[1].pdf
 
Chapter 1. Functions in C++.pdf
Chapter 1.  Functions in C++.pdfChapter 1.  Functions in C++.pdf
Chapter 1. Functions in C++.pdf
 
Functions12
Functions12Functions12
Functions12
 
Functions123
Functions123 Functions123
Functions123
 
C++ Functions
C++ FunctionsC++ Functions
C++ Functions
 

More from Abdul Samee

3 operators-expressions-and-statements-120712073351-phpapp01
3 operators-expressions-and-statements-120712073351-phpapp013 operators-expressions-and-statements-120712073351-phpapp01
3 operators-expressions-and-statements-120712073351-phpapp01Abdul Samee
 
Input outputdisplaydevices-140819061228-phpapp02
Input outputdisplaydevices-140819061228-phpapp02Input outputdisplaydevices-140819061228-phpapp02
Input outputdisplaydevices-140819061228-phpapp02Abdul Samee
 
16 strings-and-text-processing-120712074956-phpapp02
16 strings-and-text-processing-120712074956-phpapp0216 strings-and-text-processing-120712074956-phpapp02
16 strings-and-text-processing-120712074956-phpapp02Abdul Samee
 
13 recursion-120712074623-phpapp02
13 recursion-120712074623-phpapp0213 recursion-120712074623-phpapp02
13 recursion-120712074623-phpapp02Abdul Samee
 
3 operators-expressions-and-statements-120712073351-phpapp01
3 operators-expressions-and-statements-120712073351-phpapp013 operators-expressions-and-statements-120712073351-phpapp01
3 operators-expressions-and-statements-120712073351-phpapp01Abdul Samee
 
arrays-120712074248-phpapp01
arrays-120712074248-phpapp01arrays-120712074248-phpapp01
arrays-120712074248-phpapp01Abdul Samee
 

More from Abdul Samee (6)

3 operators-expressions-and-statements-120712073351-phpapp01
3 operators-expressions-and-statements-120712073351-phpapp013 operators-expressions-and-statements-120712073351-phpapp01
3 operators-expressions-and-statements-120712073351-phpapp01
 
Input outputdisplaydevices-140819061228-phpapp02
Input outputdisplaydevices-140819061228-phpapp02Input outputdisplaydevices-140819061228-phpapp02
Input outputdisplaydevices-140819061228-phpapp02
 
16 strings-and-text-processing-120712074956-phpapp02
16 strings-and-text-processing-120712074956-phpapp0216 strings-and-text-processing-120712074956-phpapp02
16 strings-and-text-processing-120712074956-phpapp02
 
13 recursion-120712074623-phpapp02
13 recursion-120712074623-phpapp0213 recursion-120712074623-phpapp02
13 recursion-120712074623-phpapp02
 
3 operators-expressions-and-statements-120712073351-phpapp01
3 operators-expressions-and-statements-120712073351-phpapp013 operators-expressions-and-statements-120712073351-phpapp01
3 operators-expressions-and-statements-120712073351-phpapp01
 
arrays-120712074248-phpapp01
arrays-120712074248-phpapp01arrays-120712074248-phpapp01
arrays-120712074248-phpapp01
 

Functions in C++ - Concepts, Types, Overloading and Recursion

  • 1. Name – Tarandeep Kaur Section – N2 Roll No. – 115331
  • 2.  Definition of functions  Function calling  Function definition  Void function  Remarks on function  Local v/s Global variables  Function call methods  Concept of recursion  Function overloading
  • 3.  A function is a subprogram that acts on data and often returns a value.
  • 4.  Functions invoked by a function–call-statement which consist of it’s name and information it needs (arguments)  Boss To Worker Analogy  A Boss (the calling/caller function) asks a worker (the called function) to perform a task and return result when it is done. Main Boss Function A Function B Function Z Worker Worker Function B2Function B1 Worker Worker Worker Note: usual main( ) Calls other functions, but other functions can call each other
  • 5.  Function Arguments can be: - Constant sqrt(9); - Variable sqrt(x); - Expression sqrt( x*9 + y) ; sqrt( sqrt(x) ) ; • Functions called by writing functionName (argument); or functionName(argument1, argument2, …); • Example cout << sqrt( 900.0 ); • sqrt (square root) function • The preceding statement would print 30 • All functions in math library return a double
  • 6. cout<< sqrt(9); Function Name argument 3 Output Parentheses used to enclose argument(s) • Calling/invoking a function – sqrt(x); – Parentheses an operator used to call function • Pass argument x • Function gets its own copy of arguments – After finished, passes back result
  • 7.  Functions ◦ Modularize a program ◦ Software reusability  Call function multiple times  Local variables ◦ Known only in the function in which they are defined ◦ All variables declared in function definitions are local variables  Parameters ◦ Local variables passed to function when called ◦ Provide outside information
  • 8.  Function prototype ◦ Tells compiler argument type and return type of function ◦ int square( int );  Function takes an int and returns an int ◦ Explained in more detail later  Calling/invoking a function ◦ square(x); ◦ Parentheses an operator used to call function  Pass argument x  Function gets its own copy of arguments ◦ After finished, passes back result
  • 9.  Example function int square( int y ) { return y * y; }  return keyword ◦ Returns data, and control goes to function’s caller  If no data to return, use return; ◦ Function ends when reaches right brace  Control goes to caller  Functions cannot be defined inside other functions
  • 10. // Creating and using a programmer-defined function. #include <iostream.h> int square( int ); // function prototype int main() { // loop 10 times and calculate and output // square of x each time for ( int x = 1; x <= 10; x++ ) cout << square( x ) << " "; // function call cout << endl; return 0; // indicates successful termination } // end main // square function definition returns square of an integer int square( int y ) // y is a copy of argument to function { return y * y; // returns square of y as an int } // end function square Definition of square. y is a copy of the argument passed. Returns y * y, or y squared. Function prototype: specifies data types of arguments and return values. square expects an int, and returns an int. Parentheses () cause function to be called. When done, it returns the result. 1 4 9 16 25 36 49 64 81 100
  • 11. } // end main // function maximum definition. x, y and z are parameters double maximum( double x, double y, double z ) { double max = x; // assume x is largest if ( y > max ) // if y is larger, max = y; // assign y to max if ( z > max ) // if z is larger, max = z; // assign z to max return max; // max is largest value } // end function maximum // Finding the maximum of three floating-point (real) numbers. #include <iostream.h> double maximum( double, double, double ); // function prototype int main() { double number1, number2; double number3; cout << "Enter three real numbers: "; cin >> number1 >> number2 >> number3; // number1, number2 and number3 are arguments to the maximum function call cout << "Maximum is: " << maximum( number1, number2, number3 ) << endl; return 0; // indicates successful termination Enter three real numbers: 99.32 37.3 27.1928 Maximum is: 99.32 Enter three real numbers: 1.1 3.333 2.22 Maximum is: 3.333 Function maximum takes 3 arguments (all double) and returns a double.
  • 12.  Function prototype contains ◦ Function name ◦ Parameters (number and data type) ◦ Return type (void if returns nothing) ◦ Only needed if function definition after function call  Prototype must match function definition ◦ Function prototype double maximum( double, double, double ); ◦ Definition double maximum( double x, double y, double z ) { … }
  • 13. If the Function does not RETURN result, it is called void Function #include<iostream.h> void add2Nums(int,int); main() { int a, b; cout<<“enter tow Number:”; cin >>a >> b; add2Nums(a, b) return 0; } void add2Nums(int x, int y) { cout<< x<< “+” << y << “=“ << x+y; }
  • 14. If the function Does Not Take Arguments specify this with EMPTY-LIST OR write void inside #include<iostream.h> void funA(); void funB(void) main() { funA(); funB(); return 0; } void funA() { cout << “Function-A takes no arqumentsn”; } void funB() { cout << “Also Function-B takes No argumentsn”; } Will be the same in all cases
  • 15.  Local variables ◦ Known only in the function in which they are defined ◦ All variables declared inside a function are local variables  Parameters ◦ Local variables passed to function when called (passing- parameters)  Variables defined outside and before function main: ◦ Called global variables ◦ Can be accessible and used anywhere in the entire program
  • 16. #include<iostream.h> int x,y; //Global Variables int add2(int, int); //prototype main() { int s; x = 11; y = 22; cout << “global x=” << x << endl; cout << “Global y=” << y << endl; s = add2(x, y); cout << x << “+” << y << “=“ << s; cout<<endl; cout<<“n---end of output---n”; return 0; } int add2(int x1,int y1) { int x; //local variables x=44; cout << “nLocal x=” << x << endl; return x1+y1; } global x=11 global y=22 Local x=44 11+22=33 ---end of output---
  • 17.  Call by value • A copy of the value is passed  Call by reference • The caller passes the address of the value  Call by value  Up to this point all the calls we have seen are call-by-value, a copy of the value (known) is passed from the caller-function to the called- function  Any change to the copy does not affect the original value in the caller function  Advantages, prevents side effect, resulting in reliable software
  • 18.  Call By Reference  We introduce reference-parameter, to perform call by reference. The caller gives the called function the ability to directly access the caller’s value, and to modify it.  A reference parameter is an alias for it’s corresponding argument, it is stated in c++ by “flow the parameter’s type” in the function prototype by an ampersand(&) also in the function definition-header.  Advantage: performance issue void function_name (type &);// prototype main() { ----- ------ } void function_name(type &parameter_name)
  • 19. #include<iostream.h> int squareVal(int); //prototype call by value function void squareRef(int &); // prototype call by –reference function int main() { int x=2; z=4; cout<< “x=“ << x << “before calling squareVal”; cout << “n” << squareVal(x) << “n”; // call by value cout<< “x=“ << x << “After returning” cout<< “z=“ << z << “before calling squareRef”; squareRef(z); // call by reference cout<< “z=“ << z<< “After returning squareRef” return 0; } int squareVal(int a) { return a*=a; // caller’s argument not modified } void squarRef(int &cRef) { cRef *= cRef; // caller’s argument modified } x=2 before calling squareVal 4 x=2 after returning z=4 before calling squareRef z=16 after returning squareRef
  • 20.  Main calls another function…..normal  A function calls another function2….normal  A function calls itself ?! Possible?? YES A recursive function is one that call itself.
  • 21.  A recursive function is called to solve a problem  The function knows to solve only the simplest cases or so-called base-cases  Thus if the function called with a base-case, it simply returns a result. But if it is called with more complex problem, the function divides the problem into two conceptual pieces, one knows how to do, and another doesn't know what to do.  The second case/piece must resemble the original problem, but be a slightly simpler/smaller version of the original problem
  • 22.  Function overloading ◦ Functions with same name and different parameters ◦ Should perform similar tasks  I.e., function to square ints and function to square floats int square( int x) {return x * x;} float square(float x) { return x * x; }  A call-time c++ complier selects the proper function by examining the number, type and order of the parameters