In deze tutorial leren we met behulp van voorbeelden over de C ++ -functie en functie-expressies.
Een functie is een codeblok dat een specifieke taak uitvoert.
Stel dat we een programma moeten maken om een cirkel te maken en deze te kleuren. We kunnen twee functies maken om dit probleem op te lossen:
- een functie om de cirkel te tekenen
- een functie om de cirkel te kleuren
Door een complex probleem op te delen in kleinere stukjes, is ons programma gemakkelijk te begrijpen en herbruikbaar.
Er zijn twee soorten functies:
- Standaard bibliotheekfuncties: vooraf gedefinieerd in C ++
- Door gebruiker gedefinieerde functie: gemaakt door gebruikers
In deze tutorial zullen we ons voornamelijk concentreren op door de gebruiker gedefinieerde functies.
C ++ Door de gebruiker gedefinieerde functie
Met C ++ kan de programmeur zijn eigen functie definiëren.
Een door de gebruiker gedefinieerde functie groepeert code om een specifieke taak uit te voeren en die groep code krijgt een naam (identifier).
Wanneer de functie wordt aangeroepen vanuit een deel van het programma, voert het allemaal de codes uit die zijn gedefinieerd in de hoofdtekst van de functie.
C ++ Functie-verklaring
De syntaxis om een functie te declareren is:
returnType functionName (parameter1, parameter2,… ) ( // function body )
Hier is een voorbeeld van een functieverklaring.
// function declaration void greet() ( cout << "Hello World"; )
Hier,
- de naam van de functie is
greet()
- het retourtype van de functie is
void
- de lege haakjes betekenen dat het geen parameters heeft
- de functie body is binnen geschreven
()
Opmerking: we zullen meer leren over returnType
en parameters
later in deze tutorial.
Een functie aanroepen
In het bovenstaande programma hebben we een functie gedeclareerd met de naam greet()
. Om de greet()
functie te gebruiken , moeten we deze aanroepen.
Hier is hoe we de bovenstaande greet()
functie kunnen noemen .
int main() ( // calling a function greet(); )

Voorbeeld 1: geef een tekst weer
#include using namespace std; // declaring a function void greet() ( cout << "Hello there!"; ) int main() ( // calling the function greet(); return 0; )
Uitvoer
Hallo daar!
Functieparameters
Zoals hierboven vermeld, kan een functie worden gedeclareerd met parameters (argumenten). Een parameter is een waarde die wordt doorgegeven bij het declareren van een functie.
Laten we bijvoorbeeld eens kijken naar de onderstaande functie:
void printNum(int num) ( cout << num; )
Hier is de int
variabele num de functieparameter.
We geven een waarde door aan de functieparameter terwijl we de functie aanroepen.
int main() ( int n = 7; // calling the function // n is passed to the function as argument printNum(n); return 0; )
Voorbeeld 2: functie met parameters
// program to print a text #include using namespace std; // display a number void displayNum(int n1, float n2) ( cout << "The int number is " << n1; cout << "The double number is " << n2; ) int main() ( int num1 = 5; double num2 = 5.5; // calling the function displayNum(num1, num2); return 0; )
Uitvoer
Het int-nummer is 5 Het dubbele nummer is 5,5
In het bovenstaande programma hebben we een functie gebruikt die één int
parameter en één double
parameter heeft.
We geven dan num1 en num2 door als argumenten. Deze waarden worden opgeslagen door respectievelijk de functieparameters n1 en n2.

Opmerking: het type argumenten dat wordt doorgegeven tijdens het aanroepen van de functie, moet overeenkomen met de corresponderende parameters die zijn gedefinieerd in de functiedeclaratie.
Retourverklaring
In de bovenstaande programma's hebben we void gebruikt in de functieverklaring. Bijvoorbeeld,
void displayNumber() ( // code )
Dit betekent dat de functie geen waarde retourneert.
Het is ook mogelijk om een waarde van een functie te retourneren. Hiervoor moeten we de returnType
van de functie specificeren tijdens functiedeclaratie.
Vervolgens kan de return
instructie worden gebruikt om een waarde van een functie te retourneren.
Bijvoorbeeld,
int add (int a, int b) ( return (a + b); )
Hier hebben we het gegevenstype in int
plaats van void
. Dit betekent dat de functie een int
waarde retourneert .
De code return (a + b);
retourneert de som van de twee parameters als functiewaarde.
De return
instructie geeft aan dat de functie is beëindigd. Elke code na return
binnen de functie wordt niet uitgevoerd.
Voorbeeld 3: voeg twee cijfers toe
// program to add two numbers using a function #include using namespace std; // declaring a function int add(int a, int b) ( return (a + b); ) int main() ( int sum; // calling the function and storing // the returned value in sum sum = add(100, 78); cout << "100 + 78 = " << sum << endl; return 0; )
Uitvoer
100 + 78 = 178
In het bovenstaande programma wordt de add()
functie gebruikt om de som van twee getallen te vinden.
We passeren twee int
letterlijke tekens 100
en 78
tijdens het aanroepen van de functie.
We slaan de geretourneerde waarde van de functie op in de variabele som, en dan drukken we deze af.

Merk op dat som een int
type variabele is. Dit komt doordat de retourwaarde add()
van het int
type is.
Functieprototype
In C++, the code of function declaration should be before the function call. However, if we want to define a function after the function call, we need to use the function prototype. For example,
// function prototype void add(int, int); int main() ( // calling the function before declaration. add(5, 3); return 0; ) // function definition void add(int a, int b) ( cout << (a + b); )
In the above code, the function prototype is:
void add(int, int);
This provides the compiler with information about the function name and its parameters. That's why we can use the code to call a function before the function has been defined.
The syntax of a function prototype is:
returnType functionName(dataType1, dataType2,… );
Example 4: C++ Function Prototype
// using function definition after main() function // function prototype is declared before main() #include using namespace std; // function prototype int add(int, int); int main() ( int sum; // calling the function and storing // the returned value in sum sum = add(100, 78); cout << "100 + 78 = " << sum << endl; return 0; ) // function definition int add(int a, int b) ( return (a + b); )
Output
100 + 78 = 178
The above program is nearly identical to Example 3. The only difference is that here, the function is defined after the function call.
That's why we have used a function prototype in this example.
Benefits of Using User-Defined Functions
- Functions make the code reusable. We can declare them once and use them multiple times.
- Functions make the program easier as each small task is divided into a function.
- Functions increase readability.
C++ Library Functions
Library functions are the built-in functions in C++ programming.
Programmers can use library functions by invoking the functions directly; they don't need to write the functions themselves.
Some common library functions in C++ are sqrt()
, abs()
, isdigit()
, etc.
In order to use library functions, we usually need to include the header file in which these library functions are defined.
For instance, in order to use mathematical functions such as sqrt()
and abs()
, we need to include the header file cmath
.
Example 5: C++ Program to Find the Square Root of a Number
#include #include using namespace std; int main() ( double number, squareRoot; number = 25.0; // sqrt() is a library function to calculate the square root squareRoot = sqrt(number); cout << "Square root of " << number << " = " << squareRoot; return 0; )
Output
Vierkantswortel van 25 = 5
In dit programma wordt de sqrt()
bibliotheekfunctie gebruikt om de vierkantswortel van een getal te berekenen.
De functieverklaring van sqrt()
is gedefinieerd in het cmath
headerbestand. Daarom moeten we de code #include
gebruiken om de sqrt()
functie te gebruiken .
Ga voor meer informatie naar C ++ Standard Library-functies.