Functies

Functies zijn in principe niks anders dan blokken met code die een bepaalde opdracht uitvoeren waarna ze een waarde, of niks retourneren. Functies zijn heel makkelijk te gebruiken en zorgen ervoor dat de sourcecode beter leesbaar blijft. Een voorbeeldje geeft dit goed weer.

int optellen(int x, int y)
{
  return x+y;	// retourneer x+y 
}

int main()	// main functie
{
  int x,y;	// 2 variabelen declareren
  
  cout <<"Toets een waarde in:";	
  cin >> x;				// voer waarde x in
  cout <<"\nToets nog een waarde in:";
  cin >> y;				// voer waarde y in
  cout << optellen(x,y);		// spring naar de functie optellen en
					// laat de  retour waarde zien

  return 0;
}
In dit voorbeeld heb ik twee functies gemaakt namelijk main en optellen die door de main functie wordt opgeroepen. In de main functie wordt eerst gevraagd om 2 waarden in te vullen waarna de laatste cout de waarde die in optellen staat op het scherm zet. Aangezien optellen een functie is (die de waarden van x en y ontvangt) wordt er naar deze functie gesprongen. Binnen deze functie worden vervolgens x en y opgeteld, en de uitkomst aan optellen toegekent (d.m.v. return x+y). Als het programma dan weer terug komt in de main functie wordt de waarde die nu in optellen staat (de waarde van x + y) op het scherm gezet.

Globaal vs. lokaal

Nu je weet wat functies zijn is er nog 1 probleem, variabelen, je hebt namelijk lokale en globale variabelen. Lokale variabelen zijn variabelen die binnen een functie zijn gedeclareerd (zoals in het vorige voorbeeld). Je kunt variabelen echter ook buiten een functie declareren (normaal gesproken bovenaan, net onder de header files), dit zijn dan globale variabelen. Globale variabelen kun je binnen elke functie gebruiken en wijzigen, het probleem is echter dat je zo snel fouten krijgt in je programma die moelijk te vinden zijn. Lokale variabelen kun je dus het beste gebruiken, deze kunnen namelijk alleen maar binnen 1 functie gebruikt en gewijzigd worden zonder dat andere functies hier bij kunnen.

Overloading

Nog 1 klein ding dat met functies mogelijk is is overloading. Hierdoor kun je meerdere functies met dezelfde naam declareren, ze moeten echter wel van een ander type zijn of een andere hoeveelheid parameters bevatten. Hieronder een voorbeeldje.

int optellen(int,int);
int optellen(float,float);
int optellen(float);
Succes

Vampire,