Article View: be.comp.programming
Article #11995Re: c++ functies
From: Nicolas Barbier
Date: Thu, 27 Dec 2001 11:22
Date: Thu, 27 Dec 2001 11:22
44 lines
2656 bytes
2656 bytes
"Max Payne" <Max_Payne@pandora.be> wrote:
>jo de mannen,
>seg keb ier e probleemke.. tot over 2 weken kon ik alles van C++ wa we
>gezien hadden.. dan kwamen de functies..beginfuncties gingen goed tot vr�
>goed (na te studeren) maar dan wast alleen void functies
>nu zit ge me int enzo, die ampersanten (&); waar kan ik hiervoor meer
>studiemateriaal vinden?? een url liefst, of ook voorbeeldoefeningen zijn
>goed..alles dat met functies te maken heeft, persoonlijke KLARE uitleg is
>ook goed!
die ampersanten worden voor 2 dingen gebruikt:
in declararies betekent het een "reference" variabele maken (dit
bestond nog niet in C)
in expressies is het de referentie-operator, wat eigenlijk neerkomt op
"een pointer maken" naar iets (dit bestond al wel in C)
het eerste wordt in C++ nogal eens gebruikt om parameters van een
functie zgn "variabel" te maken (benaming is wel vrij dubbelzinnig,
komt van pascal). dit betekent dat de functie de waarde van zo een
argument kan veranderen en dat de oproepende functie dat als
neveneffect waarneemt (zonder die & kan je een parameter veranderen
maar merkt de oproepende functie daar niets van)
vb:
void f(int a) { a = 5; }
void g(int &a) { a = 5; }
(...)
int i = 0;
f(i); // de waarde van i verandert NIET
g(i); // de waarde van i wordt veranderd in 5
merk op dat f(5) zin heeft maar g(5) niet (het argument van g moet een
"lvalue" zijn (dit betekent ongeveer "iets dat kan worden veranderd",
dus geen constante))
references worden ook gebruikt als resultaat van een functie, maar dat
is vooral om geheugen te sparen
--
Nicolas Barbier
String myEmail() {
return "nicolas.barbier" + '@' + "easynet.be";
}
Technical Details
Message-ID:
<3c2b01cf.806339@news.easynet.be>Path:
arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!sn-xit-02!supernews.com!news.tele.dk!small.news.tele.dk!195.238.2.15!skynet.be!skynet.be!feed1.news.be.easynet.net!news.be.easynet.net!not-for-mailReferences:
<zLoW7.5741$tL6.1619282029@hebe.telenet-ops.be>Show Full Headers
Complete Article Headers
X-Google-Language: DUTCH,ASCII X-Google-Thread: fcea4,dbab361d97ff10c1 X-Google-Attributes: gidfcea4,public X-Google-ArrivalTime: 2001-12-27 03:23:39 PST Path: arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!sn-xit-02!supernews.com!news.tele.dk!small.news.tele.dk!195.238.2.15!skynet.be!skynet.be!feed1.news.be.easynet.net!news.be.easynet.net!not-for-mail From: nicolas.barbier@easynet.nospamforme.be (Nicolas Barbier) Newsgroups: be.comp.programming Subject: Re: c++ functies Date: Thu, 27 Dec 2001 11:22:28 GMT Organization: [ posted via Easynet Belgium ] Lines: 44 Message-ID: <3c2b01cf.806339@news.easynet.be> References: <zLoW7.5741$tL6.1619282029@hebe.telenet-ops.be> NNTP-Posting-Host: 213-193-182-214.adsl.easynet.be X-Trace: rivage.news.be.easynet.net 1009452217 65251 213.193.182.214 (27 Dec 2001 11:23:37 GMT) X-Complaints-To: abuse@easynet.be NNTP-Posting-Date: 27 Dec 2001 11:23:37 GMT X-Newsreader: Forte Free Agent 1.21/32.243