10. Functies - deel 2
In het hoofdstuk Functies - deel 1 heb je over parameters geleerd. Bij een functie zijn er 2 soorten parameters:
Call by value: een kopie van de variabele wordt als parameter doorgegeven. Dit betekent dat als de variabele in de functie van waarde veranderd, de originele variabele nog steeds dezelfde waarde heeft.
Call by reference: de variabele zelf wordt als parameter doorgegeven. Dit betekent dat als de variabele in de functie van waarde veranderd, de originele variabele ook van waarde is veranderd. Met een & teken voor de parameter geef je aan dat dit een call by reference variabele is.
Voorbeeld van call by value:
#include <iostream>
using namespace std;
void hoogOp (int getal_in_functie){
getal_in_functie++; //Lokaal in de functie wordt de waarde van getal 1
}
int main(){
int getal = 0; //De variabele getal wordt gedeclareerd met de waarde 0
hoogOp(getal);
cout << "Waarde van getal = " << getal; //De waarde in de main is niet opgehoogd
//en er zal dus 0 geprint worden
return 0;
}
Voorbeeld van call by reference:
#include <iostream>
using namespace std;
void hoogOp (int &getal_in_functie){
getal_in_functie ++; //In dit geval is getal een kopie van getal uit de main
//en dus worden beide nu opgehoogd met 1
}
int main(){
int getal = 0; //De variabele getal wordt gedeclareerd met de waarde 0
hoogOp(getal);
cout << "Waarde van getal = " << getal; //Er wordt nu 1 geprint
return 0;
}
Opdracht 10.1 Probeer beide voorbeelden uit. Wat is het verschil tussen de 2 voorbeelden?
Een vector kun je ook call-by-value en call-by-reference aan een functie doorgeven:
void func(vector<int> vect) //call-by-value
void func(vector<int> &vect) //call-by-reference
Opdracht 10.2 Maak de opdracht: vectors. Schrijf nette code door gebruik te maken van functies.
Built-in functies
C++ bevat nuttige functies die je kan gebruiken. Bijvoorbeeld:
- min
: geeft de kleinste van 2 getallen
- max
: geeft de grootste van 2 getallen
- swap
: hiermee kun je de waardes van 2 variabelen omwisselen
- sqrt
: berekent de wortel. Deze kot
- pow
: berekent de macht
- ceil
: naar boven afronden
- floor
: naar beneden afronden
- sort
: sorteert de waardes in een array
Voor sommige functies moet je wel een extra library toevoegen aan je code. Bijvoorbeeld:
#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
#include <cmath>
Op de pagina https://en.cppreference.com/w/cpp/header kun je een reference vinden van alle libraries. Als je bijvoorbeeld de library <cmath> selecteert dan kan je alle built-in functies zien van deze library.
Opdracht 10.3 Bepaal de kleinste van 3 getallen met de functie min. Kijk op de reference pagina hoe je de functie min kan gebruiken.
Opdracht 10.4
Schrijf een programma dat de cijfers in onderstaande vector sorteert. Maak gebruik van de functie sort
. Kijk op de reference pagina hoe je de functie sort
kan gebruiken.
vector cijfers = { 5, 4, 9, 12, 8, 7, 13, 15, 4, 2, 1, 0, 4, 2, 5, 0, 4, 2, 10, 5, 20, 1, 7, 23, 16};
Last updated