Thuis
Contacten

    Hoofdpagina


Programmeren in C++ voor beginners

Dovnload 5.04 Mb.

Programmeren in C++ voor beginners



Pagina26/49
Datum25.10.2017
Grootte5.04 Mb.

Dovnload 5.04 Mb.
1   ...   22   23   24   25   26   27   28   29   ...   49

Referencing voor meerdere return-waarden

Ook kan referencing worden gebruikt om meerdere return-waardes te hebben:


#include
void LowerUpper(

const String s,

String& lower,

String& upper)

{

lower = s.LowerCase();



upper = s.UpperCase();

}
void MijnFunctie()

{

const String paswoord = "SesamOpenU";

String laag = "";

String hoog = "";

LowerUpper(paswoord,laag,hoog);

assert(laag == "sesamopenu");

assert(hoog == "SESAMOPENU");

}

    1. Reference-to-const

Met referencing kan er met het origineel gewerkt worden. Dit scheelt dat achter de schermen er een kopie van de variabele wordt gemaakt.


Een String kan uit miljoenen tekens bestaan. Onderstaande functie declaratie zal een kopie maken van een String, deze alleen lezen, en vervolgs de kopie weggooien:
int TelAantalSpaties(const String s);
Onderstaande functie declaratie gebruikt een reference, waarder er geen kopie van de String wordt gemaakt. Deze is sneller, maar garandeerd niet dat s ongewijzigd blijft:
int TelAantalSpaties(String& s);
Het reference-to-const idioom garandeerd dat er met het origineel wordt gewerkt, zonder dat deze wordt gewijzigd:
int TelAantalSpaties(const String& s);
Een String is typisch een data type dat met reference-to-const wordt doorgegeven aan een functie.
Bij een int is dit een ander verhaal: het kopieren van een int gaat net zo snel als het doorgeven van een referernce. Daarom worden simpele datatypen 'gewoon' (dus met kopie) doorgegeven aan functies:
int Kwadraat(const int x);




Geef de voorkeur een reference-to-const aan een functie te geven, behalve bij ingebouwde types, zoals int.
1   ...   22   23   24   25   26   27   28   29   ...   49

  • Reference-to-const

  • Dovnload 5.04 Mb.