Article View: be.comp.programming
Article #11988Re: c++ functies
From: geronimo
Date: Wed, 26 Dec 2001 19:43
Date: Wed, 26 Dec 2001 19:43
99 lines
4525 bytes
4525 bytes
Max Payne 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!
>
> tis binnenkort examen en kan niets van die oefeningen!!
>
> thx in @vance!
>
>
>
misschien niet de snelste manier (wanneer is 'binnenkort'?) maar wel
bijzonder goed en volledig: het boek "Thinking in C++" van Bruce Eckel.
Gratis (!!) te downloaden op http://www.mindview.net
In wezen is er weinig verschil tussen void-functies en int-functies. Een
void functie heeft alleen maar een "neveneffect", en geeft geen waarde
terug.
Bijvoorbeeld:
void rekenmachine1(int a, int b)
{
// vermenigvuldigt twee getallen a en b,
// en schrijft het resultaat naar het scherm.
int c;
c = a*b;
cout << "antwoord: " << c << endl;
return;
}
Het "neveneffect" is dus de uitvoer naar het scherm.
Een int-functie (of meer algemeen niet-void) voert een aantal
bewerkingen uit en, in plaats van daar "niets" mee te doen, wordt het
resultaat teruggegeven.
Bijvoorbeeld:
int rekenmachine2(int a, int b)
{
// vermenigvuldigt twee getallen a en b,
// schrijft het resultaat naar het scherm,
// en retourneert deze waarde.
int c;
c = a*b;
cout << "antwoord: " << c << endl;
return c;
}
Deze functie heeft hetzelfde "neveneffect" als de vorige. Daarnaast
wordt in de laatste regel het getal "c" teruggegeven (return) aan de
gebruiker, zodat hij er verdere bewerkingen mee kan doen.
De eerste rekenmachine krijgt 2 argumenten en voert daar vanalles mee
uit, maar de oproepende functie 'ziet' daar niks van terug. De tweede
rekenmachine krijgt ook 2 argumenten en voert daar dezelfde operaties
mee uit, maar door de uitkomst als return-waarde terug te geven kan de
oproepende functie daar weer andere dingen mee doen.
Bijvoorbeeld:
void main
{
int a = 5;
int b = 3;
// declareren en initialiseren van twee gehele getallen
rekenmachine1(a, b);
// Deze functie kan zonder meer worden opgeroepen,
// en voert de vermenigvuldiging uit. De functie 'main' heeft
// echter geen controle op wat er gebeurt, ze ziet er niets van.
int d;
// het gehele getal d wordt gedeclareerd
d = rekenmachine2(a, b);
// In de variabele d wordt het getal opgeslagen dat de uitkomst
// is van de functie rekenmachine2. Op die manier kan vanuit
// de functie 'main' bekeken worden wat het resultaat was van de
// functie.
// ... (verdere bewerkingen met d)
return;
}
Dit is maar z��r kort uitgelegd, waarschijnlijk slaagt men er in een
boek beter in om dit duidelijker uit te leggen. Elk boek over C++ heeft
het over dit soort dingen, dus je zal er zeker nog meer over vinden.
Opgelet: je moet ervoor zorgen dat de waarde die een functie teruggeeft
ergens in "opgevangen" wordt! Je schrijft immers ook niet zomaar a*b,
zonder daar iets mee te doen.
Afhankelijk van waarvoor de functie moet dienen, kan je dus een void- of
een niet-void-functie kiezen.
groenten,
geronimo
Technical Details
Message-ID:
<3C2A2848.5070105@kotnet.org>Path:
arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!sn-xit-02!supernews.com!isdnet!surfnet.nl!naxos.belnet.be!news.belnet.be!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-26 11:40:32 PST Path: arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!sn-xit-02!supernews.com!isdnet!surfnet.nl!naxos.belnet.be!news.belnet.be!not-for-mail From: geronimo <geronimo@kotnet.org> Newsgroups: be.comp.programming Subject: Re: c++ functies Date: Wed, 26 Dec 2001 20:43:04 +0100 Organization: KULeuvenNet Lines: 100 Message-ID: <3C2A2848.5070105@kotnet.org> References: <zLoW7.5741$tL6.1619282029@hebe.telenet-ops.be> NNTP-Posting-Host: seven.kulnet.kuleuven.ac.be Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 8bit X-Trace: naxos.belnet.be 1009395630 22218 134.58.127.12 (26 Dec 2001 19:40:30 GMT) X-Complaints-To: abuse@belnet.be NNTP-Posting-Date: Wed, 26 Dec 2001 19:40:30 +0000 (UTC) User-Agent: Mozilla/5.0 (Windows; U; Win98; en-GB; rv:0.9.4) Gecko/20011019 Netscape6/6.2 X-Accept-Language: en-gb Cache-Post-Path: seven.kulnet.kuleuven.ac.be!unknown@geronimo.kotnet.org X-Cache: nntpcache 2.4.0b5 (see http://www.nntpcache.org/)