[IP] waarde en variabele parameter

Forum van 1ste Bachelor Informatica.

Moderator: Praesidium

User avatar
Flipper
Posts: 193

[IP] waarde en variabele parameter

Post#1 » Fri Nov 16, 2012 7:35 pm

Ik begrijp niet wat het verschil is tussen een waarde en variabele parameter. :|

Code: Select all

int tros(int gele_banaan, int& groene_banaan) {
...
}
De eerste is een waarde parameter, de tweede is een variabele parameter, tot zover is het me duidelijk, maar daarna :?:

Ik moet dit begrijpen voordat ik aan de opgave over het maken van een conversie-library kan beginnen. Daar vragen ze immers om minstens 1 conversiefunctie met waarde en variabele parameter te schrijven en ook minstens één conversiefunctie met een return waarde. Vandaar mijn 2e vraagje: is er dan een verschil tussen deze 2 type functies? Ik dacht dat zowat elke functie wel "iets" moet returnen...
They call him Flipper, Flipper, faster than lightning,
No-one you see, is smarter than he,
And we know Flipper, lives in a world full of wonder,
Flying there-under, under the sea!

User avatar
Timmy
Posts: 844

Re: [IP] waarde en variabele parameter

Post#2 » Fri Nov 16, 2012 9:16 pm

Flipper wrote:Ik begrijp niet wat het verschil is tussen een waarde en variabele parameter. :|

Code: Select all

int tros(int gele_banaan, int& groene_banaan) {
...
}
De eerste is een waarde parameter, de tweede is een variabele parameter, tot zover is het me duidelijk, maar daarna :?:

Ik moet dit begrijpen voordat ik aan de opgave over het maken van een conversie-library kan beginnen. Daar vragen ze immers om minstens 1 conversiefunctie met waarde en variabele parameter te schrijven en ook minstens één conversiefunctie met een return waarde. Vandaar mijn 2e vraagje: is er dan een verschil tussen deze 2 type functies? Ik dacht dat zowat elke functie wel "iets" moet returnen...
Stel, u code is als volgt

Code: Select all

 
int tros(int gele_banaan, int& groene_banaan){
gele_banaan = gele_banaan + 2;
groene_banaan = groene_banaan + 2;
}

int gele_banaan = 0;
int groene_banaan = 0;

tros(gele_banaan, groene_banaan);

cout << "Gele: " << gele_banaan << " Groene: " << groene_banaan << endl;
Ge gaat volgende output krijgen:

Code: Select all

Gele: 0 Groene: 2
Bij waarde parameter (dus zonder &) gaat ge enkel de waarde van u variabele meegeven. Dus in u functie gatem een lokale kopie van die variabele maken, die +2 doen, dus dn originele blijft ongewijzigd. Bij u variabele parameter (pass by reference) gaat ge ni de waarde, maar het ADRES van u variabele meegeven. Dus u functie gaat da zien, naar da adres gaan, u variabele ophalen, en daar +2 op doen, waardoor u originele wordt gewijzigd.

Ik suck @ dingen opletten, maar khoop da get snapt? :D

En @ u 2de vraag: een functie moet ni altij iets returnen, in da vorig voorbeeld kan u functie even goe

Code: Select all

void tros(int gele_banaan, int& groene_banaan)
zijn, wa zoveel betekent als "Deze functie geeft niets terug". Het is ook ni verplicht om nen return te zette in een functie die bv nen int zou moeten returnen, buiten wanneer ge bv zegt

Code: Select all

int resultaat = tros(gele_banaan, groene_banaan)
Want dan verwacht ge effectief dat ge een waarde terugkrijgt die ge in u nieuwe variabele stopt.

User avatar
Manfr3d
Posts: 1997
Contact:

Re: [IP] waarde en variabele parameter

Post#3 » Fri Nov 16, 2012 11:57 pm

Ben eens curieus wanneer wij da op hogeschool gaan tegenkomen. Ik krijg da dus ni zo maar uitgelegd eh...
Maar Timmy, ik ga u voorbeeld copy-pasta'en en blijven gebruiken!
I would love to change the world, but they won't give me the source code

WINAK Schacht 2009-2010
ASK-Stuwer Snelkrant 2010-2011
KdG-Student 2011-2014
Castrum Cantor 2012-2013
Castrum Schachtenmeester 2013-2014
Castrum Quaestor 2014-2015
Castrum Praeses 2015-2016

User avatar
Flipper
Posts: 193

Re: [IP] waarde en variabele parameter

Post#4 » Sat Nov 17, 2012 12:37 am

Prachtig, I got it :bow:
They call him Flipper, Flipper, faster than lightning,
No-one you see, is smarter than he,
And we know Flipper, lives in a world full of wonder,
Flying there-under, under the sea!

User avatar
Manfr3d
Posts: 1997
Contact:

Re: [IP] waarde en variabele parameter

Post#5 » Sat Nov 17, 2012 12:55 am

om u tweede vraag nog duidelijker te maken had den Timmy eigelijk in het eerste voorbeeld zijn functie

Code: Select all

void tros(int gele_banaan, int& groene_banaan){
...}
moeten noemen ;-)
I would love to change the world, but they won't give me the source code

WINAK Schacht 2009-2010
ASK-Stuwer Snelkrant 2010-2011
KdG-Student 2011-2014
Castrum Cantor 2012-2013
Castrum Schachtenmeester 2013-2014
Castrum Quaestor 2014-2015
Castrum Praeses 2015-2016

timvdm
Posts: 47

Re: [IP] waarde en variabele parameter

Post#6 » Sun Nov 18, 2012 9:07 pm

Timmy wrote: En @ u 2de vraag: een functie moet ni altij iets returnen, in da vorig voorbeeld kan u functie even goe

Code: Select all

void tros(int gele_banaan, int& groene_banaan)
zijn, wa zoveel betekent als "Deze functie geeft niets terug". Het is ook ni verplicht om nen return te zette in een functie die bv nen int zou moeten returnen, buiten wanneer ge bv zegt

Code: Select all

int resultaat = tros(gele_banaan, groene_banaan)
Want dan verwacht ge effectief dat ge een waarde terugkrijgt die ge in u nieuwe variabele stopt.
Als je een functie definieerd als int, returned ge best wel iets. Anders is het gedrag ongedefinieerd...

Return to “1ste Bachelor”

Who is online

Users browsing this forum: Bing [Bot] and 4 guests

cron