A function is a group of statements that together perform a task.
Every C++ program has at least one function, which is main(),
and all the most trivial programs can define additional functions.
You
can divide up your code into separate functions. How you divide up your code
among different functions is up to you, but logically the division usually is
such that each function performs a specific task.
A
function declaration tells the
compiler about a function's name, return type, and parameters. A function definition provides the actual body of
the function.
The
C++ standard library provides numerous built-in functions that your program can
call. For example, function strcat() to
concatenate two strings, function memcpy() to
copy one memory location to another location and many more functions.
A
function is known with various names like a method or a sub-routine or a
procedure etc.
Defining a Function
A C++ function definition consists of a function
header and a function body. Here are all the parts of a function −
·
Return
Type − A function may
return a value. The return_type is the data type of the value
the function returns. Some functions perform the desired operations without
returning a value. In this case, the return_type is the keyword void.
·
Function
Name − This is the
actual name of the function. The function name and the parameter list together
constitute the function signature.
·
Parameters − A parameter is like a placeholder. When
a function is invoked, you pass a value to the parameter. This value is
referred to as actual parameter or argument. The parameter list refers to the
type, order, and number of the parameters of a function. Parameters are optional;
that is, a function may contain no parameters.
·
Function
Body − The function
body contains a collection of statements that define what the function does.
Calling a Function
While
creating a C++ function, you give a definition of what the function has to do.
To use a function, you will have to call or invoke that function.
When
a program calls a function, program control is transferred to the called
function. A called function performs defined task and when it’s return
statement is executed or when its function-ending closing brace is reached, it
returns program control back to the main program.
To
call a function, you simply need to pass the required parameters along with
function name, and if function returns a value, then you can store returned
value.
Program input:
#include <iostream>
using namespace std;
// function declaration
int max(int num1, int num2);
int main () {
// local variable
declaration:
int a = 100;
int b = 200;
int ret;
// calling a function to
get max value.
ret = max(a, b);
cout << "Max
value is : " << ret << endl;
return 0;
}
// function returning the max between two numbers
int max(int num1, int num2) {
// local variable
declaration
int result;
if (num1 > num2)
result = num1;
else
result = num2;
return result;
}
Program Output:
Function Arguments
If
a function is to use arguments, it must declare variables that accept the
values of the arguments. These variables are called the formal parametersof the function.
The
formal parameters behave like other local variables inside the function and are
created upon entry into the function and destroyed upon exit.
While
calling a function, there are two ways that arguments can be passed to a
function −
Sr.No
|
Call Type & Description
|
1
|
This method copies the actual
value of an argument into the formal parameter of the function. In this case,
changes made to the parameter inside the function have no effect on the
argument.
|
2
|
This method copies the address
of an argument into the formal parameter. Inside the function, the address is
used to access the actual argument used in the call. This means that changes
made to the parameter affect the argument.
|
3
|
This method copies the
reference of an argument into the formal parameter. Inside the function, the
reference is used to access the actual argument used in the call. This means
that changes made to the parameter affect the argument.
|
By
default, C++ uses call by value to
pass arguments. In general, this means that code within a function cannot alter
the arguments used to call the function and above mentioned example while
calling max() function used the same method.