C++ Tutorial Index

C++ Tutorial C++ History C++ Installation C++ First Program C++ cin and cout C++ Data type C++ Variable C++ operator C++ Keywords

C++ Control Statements

C++ If C++ Nested if C++ If-else C++ If-else-if C++ Switch C++ Break C++ Continue C++ Goto C++ For loop C++ While loop C++ Do while loop

C++ Functions

C++ Call by Value C++ Call by Reference C++ Recursion Function C++ Inline function C++ Friend function

C++ Arrays

Single dimension array Two dimension array

C++ Strings

C++ Strings

C++ Inheritance

C++ Inheritance Single level Inheritance Multilevel Inheritance Multiple Inheritance Hierarchical Inheritance Hybrid Inheritance

C++ Polymorphism

C++ Polymorphism C++ Overloading C++ Overriding C++ Virtual Function

C++ Pointers

C++ Pointers C++ this pointer

C++ Exception Handling

C++ Exception Handling

C++ Constructors

C++ Constructors Default Constructor Parameterize Constructor Copy constructor Constructor Overloading Destructor

C++ File Handling

C++ File Handling C++ Writing to file C++ Reading file C++ Close file

Miscellaneous

C Vs C++ C++ Comments C++ Data Abstraction C++ Identifier C++ Memory Management C++ Storage Classes C++ Void Pointer C++ Array To Function C++ Expressions C++ Features C++ Interfaces C++ Encapsulation std::min in C++ External merge sort in C++ Remove duplicates from sorted array in C++ Precision of floating point numbers Using these functions floor(), ceil(), trunc(), round() and setprecision() in C++ C++ References C++ Friend Functions C++ Mutable keyword Unary Operators in C++ Initialize Array of objects with parameterized constructors in C++ Differences between #define & const in C/C++ C++ Program to Implement Shell Sort C++ Program to Implement Merge Sort Storage Classes in C Vector resize() in C++ Passing by Reference Vs. Passing by the pointer in C++ Free vs delete() in C++ goto statement in C and C++ C++ program to read string using cin.getline() C++ String Concatenation Heap Sort in C++ Swap numbers in C++ Input Iterators in C++ Fibonacci Series in C++ C ++ Program: Alphabet Triangle and Number Triangle C++ Program: Matrix Multiplication C++ Program to Print Fibonacci Triangle Stack in C++ Maps in C++ Queue in C++ C++ Bitset C++ Algorithms Priority Queue in C++ C++ Multimap C++ Deque Function Pointer in C++ Sizeof() Operators in C++ C++ array of Pointers free() Vs delete in C Timsort Implementation Using C++ CPP Templates C++ Aggregation C++ Enumeration C++ Math Functions C++ Object Class C++ Queue Initialize Vector in C++ Vector in C++ C++ STL Components Function overloading in C++ C++ Maximum Index Problem C++ find missing in the second array C++ Program to find the product array puzzle C++ Program To Find Largest Subarray With 0 Sum C++ Program To Move All Zeros To The End Of The Array C++ Program to find the element that occurs once C++ Program to find the largest number formed from an array Constructor Vs Destructor C++ Namespaces C++ OOPs Concept C++ Static C++ Structs C++ Try-Catch C++ User Defined Exceptions C++ Virtual Destructor C++ vs C# Malloc() and new in C++ Palindrome Number Program in C++ Snake Code in C++ Splitting a string in C++ Structure Vs Class in C++ Virtual Function Vs Pure Virtual Function C++ Bidirectional Iterators C++ Forward Iterators C++ Iterators C++ Output Iterators C++ Range-based For Loop Converting string into integer in C++ LCM Program in C++ Type conversion in C++ Add two numbers using the function in C++ Advantage and disadvantage friend function C++ Armstrong Number Program in C++ ATM machine program in C++ using functions Binary to Decimal in C++ Bit Manipulation in C++ C++ Constructor C++ Dijkstra Algorithm Using the Priority Queue C++ int into String C++ Signal Handling Decimal to Binary in C++ Decimal to Hexadecimal in C++ Decimal to Octal in C++ Factorial Program in C++ Function in C++ Hexadecimal to Decimal in C++ Octal to Decimal in C++ Reverse a Number in C++ Structure Vs Class in C++ C++ Forward Iterators C++ Output Iterators C++ Prime number program Char Array to String in C++ Constructor Overloading in C++ Default arguments in C++ Different Ways to Compare Strings in C++ Dynamic Binding in C++ Program to convert infix to postfix expression in C++ SET Data Structure in C++ Upcasting and Downcasting in C++ Reverse an Array in C++ Fast Input and Output in C++ Delete Operator in C++ Copy elision in C++ C++ Date and Time C++ Bitwise XOR Operator Array of sets in C++ Binary Operator Overloading in C++ Binary Search in C++ Implementing the sets without C++ STL containers Scope Resolution Operator in C++ Smart pointers in C++ Types of polymorphism in C++ Exception Handling in C++ vs Java Const Keyword in C++ Type Casting in C++ Static keyword in C++ vs Java Inheritance in C++ vs Java How to concatenate two strings in C++ Programs to Print Pyramid Patterns in C++ swap() function in C++ Structure of C++ Program Stringstream in C++ and its applications rand() and srand() in C / C++ C++ Ternary Operator C++ Scope of Variables While Loop Examples in C++ Star pattern in C++ using For Loops For Loop Examples in C++ Do-While Loop Examples in C++ Top 5 IDEs for C++ That You Should Try Once Assertions in C/C++ C++ Convert Int to String Continue in C++ While loop Diamond Pattern in C++ using For Loop How to Reverse a String in C++ using Do-While Loop How to Reverse a String in C++ using For Loop How to Reverse a String in C++ using While Loop Infinite loop in C++ Loops in C++ Returning Multiple Values from a Function using Tuple and Pair in C++ wcscpy(), wcslen(), wcscmp() Functions in C++

Function in C++

In other programming languages, a function is referred to as a process or a subroutine. We can design functions to execute any task. A function can be used repeatedly. It allows for code reuse and modularity.

Benefits of Function in C++

There are many benefits of function in C++:

Reusability of Code: You can invoke functions created in C++ multiple times. As a result, we won't have to write the same code again and over.

Optimization of code: It optimizes the code so that we don't have to write as much. Assume you need to determine if three numbers (521, 833, and 715) are prime. You must write the prime number logic three times without using a function. As a result, there is code repetition.

Function Types in C++

In C++ programming, there are two types of functions:

Function in C++

Library Functions: These are functions like ceil (i), cos (i), exp (i), and others that are declared in C++ header files. When you utilize functions, though, you only have to write the logic once and it may be reused several times.

User-defined functions: These are functions that a C++ programmer creates so that he or she may reuse them. It optimizes the code and minimizes the complexity of a large program.

How to Declare a Function in C++?

The following is the C++ syntax for creating a function:

return_type function_name(data_type parameter...)  
{    
//code to be executed    
}  

Example of a program in C++ showing the work of function:

#include <iostream>  
#include <bits/stdc++.h>
#include <stdlib>
using namespace std;  
void function() {    
   static int a=0; //static variable    
   int b=0; //local variable    
   a++;    
   b++;    
   cout<<"a=" << a<<" and b=" <<b<<endl;    
}    
int main()  
{  
 function();    
 function();    
 function();    
}  

OUTPUT:

a= 1 and b= 2
a=2 and b=1
a=3 and b=1
.................
Process executed in 435.3 seconds
Press any key to exit.

Explanation

In the above program in C++, we made a void function which takes a static variable and a local variable and we make a call to the void function from main function to print the values of a and b respectively.

What is the purpose of functions in C++?

  • We may reduce code repetition by using functions. If a function is used several times in software, rather of duplicating the same code again and over, we construct a function and use it everywhere. This also helps with maintenance because we just have to make changes to the functionality once.
  • Code is modularized thanks to functions. Consider a large file with several lines of code. When code is separated into functions, it becomes much easier to understand and utilize.
  • Abstraction comes from functions. For example, we can utilize library functions without having to worry about how they operate inside.

Parameter in Functions

Actual parameters are the arguments supplied to the function. 10 and 20 are, for example, actual parameters in the given application. Formal parameters are the parameters that a function receives. In the given program, formal parameters x and y are used. There are two common methods for passing arguments.

Pass by Value: Actual parameter values are copied to the official function parameters in this parameter pass process, and two types of parameters are stored in separate memory locations. As a result, any modifications done within functions do not appear in the caller's real arguments.

Reference Passage: Because both the actual and formal arguments relate to the same places, any changes performed inside the function are mirrored in the caller's actual parameters.

In C, parameter values are always supplied by value. For example, the function does not change the value of i in the code below ().

#include <stdio.h>
#include <iostream>
#include <bits/stdc++.h>
#include <stdlib>
void fun(int i)
{
i = 40;
}
int main(void)
{
	int i = 10;
	fun(i);
	printf("i = %d", i);
	return 0;
}

OUTPUT:

i = 10

Explanation

In the above code in C++, the function does not change the value of i because the function call was made above before printing the value.

Another example:

#include <iostream>
#inlcude <bits/stdc++.h>
#include <stdlib>
using namespace std; 
void fun(int *pter)
{
	*pter = 40;
}
int main() {
	int i = 20;
	function(&i);
	cout << "i = " << i; 
	return 0;
}

OUTPUT:

i= 40

Explanation

In C, though, we may achieve the same effect by using pointers. Consider the sample program below. The method function () requires an integer pointer pter (or an address of an integer). It changes the value at the pter address. The value at an address is accessed via the dereference operator *. The value at address pter is changed to 40 in the sentence '*pter = 40'. The address operator & is used to find the address of any data type variable. The address of i is supplied in the function call statement 'function(&i)' so that i can be updated using its address.

IMPORTANT:

  • When a user starts a program written in C, the operating system calls a method called main().
  • There is a kind of restoration in every work. If the function returns nothing, the return type does not work. Furthermore, if the function's return type is void, we may still use the return statement in the body of the function declaration without providing any constants, variables, or other parameters.
  • Except for arrays and functions, functions in C can return any type. We can get around this restriction by returning a reference to an array or a function pointer.
  • In C, an empty parameter list indicates that no arguments are given and that the function can be called with any parameters. In C, declaring a function like fun is not a smart idea (). "void fun(void)" should be used to declare a function that can only be invoked without any parameters.



ADVERTISEMENT
ADVERTISEMENT