[informatica] c++ - call by reference - class

Moderators: ArcherBarry, Fuzzwood

Reageer
Berichten: 10

[informatica] c++ - call by reference - class

hallo, hoe kan ik een functie uit een class call by reference maken?

dit is zo ongeveer de situatie:

class woordenboek {

string woorden[20];

public:

void leesIn ();

void drukAf ();

void sorteer ();

void randommix ();

void verwijder ();

void voegtoe ();

};//woordenboek

woordenboek wb;

void woordenboek::leesIn () {

string hulp;

int i = 0;

ifstream invoer;

invoer.open ("woordenboek.txt");

while(invoer >> hulp){

woorden = hulp;

i++;

}//while

}//leesIn

blablabla..

int main(){

woordenboek wb;

wb.leesin();

return 0;

}//main

de functie leesIn, sorteer, randommix, verwijder en voegtoe moeten call bij refference worden. alleen heb ik geen idee hoe ik dit voor elkaar krijg. is het zoiets als een bepaalde parameter met een & in de functie declaratie zetten. want ik heb al van alles geprobeert, maar kan niet vinden wat werkt.

ik hoop dat iemand een idee heeft voor een simpele oplossing, en wat moet ik in de functie aanroep, in de main, zetten?

alvast bedankt,

groeten, sander

Gebruikersavatar
Berichten: 24.578

Re: [informatica] c++ - call by reference - class

Welkom op het forum Huiswerk en Practica.

Jij wilt vlot hulp. Dat is alleen goed mogelijk als je daar zelf wat voor doet.

Naast de algemene regels van dit forum hebben we voor dit huiswerkforum een paar speciale regels en tips.

Die vind je in de huiswerkbijsluiter

In die huiswerkbijsluiter staat bijvoorbeeld:

VAKGEBIED-TAGS

Plaats het vakgebied waarop je vraag betrekking heeft tussen rechte haken in de titel.

bijv: [biologie] of [frans]. Zo blijft dit huiswerkforum overzichtelijk.


Hebben we even voor je gedaan. Denk je er de volgende keer zelf aan?

"Malgré moi, l'infini me tourmente." (Alfred de Musset)

Berichten: 10

Re: [informatica] c++ - call by reference - class

mijn excuses, ik ben al vele malen zeer goed geholpen op dit forum en hoop er nog vaak gebruik van te kunnen maken. ik zal in het vervolg beter opletten.

misschien is het ook handing om een beetje de grote lijn te kennen van wat de functie waar ik het eerder over had. de opdracht is als volgd; ik moet een .txt file van 20 woorden in een array inlezen. en dan met dat array een aantal aantal bewerkingen doen zoal sorteren op alfabetische volgorde, etc.

Berichten: 7.068

Re: [informatica] c++ - call by reference - class

hallo, hoe kan ik een functie uit een class call by reference maken?
Ik heb het idee dat je de vraag lastig vindt, omdat je niet weet wat een 'call by reference' is. Vandaar nu de vraag: kun je me vertellen wat jij denkt dat een call by reference is?

Berichten: 10

Re: [informatica] c++ - call by reference - class

call by reference is dat de functie een parameter wèl veranderd. call bij value is dat de parameter alleen binnen de functie veranderd, maar na de functie weer zijn originele waarde terug krijgd.

ik ben alleen maar begonnen over call bij reference om het beestje maar een naam te geven. waar het eigenlijk om draait is dat bijvoorbeeld na de functie leesIn de waarde van het "string woorden[20]" veranderd moet zijn door het hele programma. zo ook voor sorteer, voegtoe, etc.

dus waar ik vooral benieuwd naar ben; is het zo simpel als iets tussen de haakjes gooien in de functie declaratie en aanroep( bijvoorbeeld: void woordenboek::leesIn (string & woorden o.i.d.){), en zo ja wat. of word het toch wat meer werk.

alvast bedankt,

groeten, sander

Gebruikersavatar
Berichten: 5.679

Re: [informatica] c++ - call by reference - class

Gewoon een & voor een parameter zetten, dan wordt dat een reference. Voorbeeld:

Code: Selecteer alles

void FunctieA( int x )

{

  x = 6;

}



void FunctieB( int &x )

{

  x = 7;

}



void main()

{

  int t = 4;

  

  FunctieA(t);

  // t is nu nog steeds 4

  

  FunctieB(t);

  // t is nu 7 !

  

  FunctieA(3); // dit doet niks

  

  FunctieB(3); // dit kan niet (geeft een compiler error), want call by reference heeft een variabele nodig  

}
In theory, there's no difference between theory and practice. In practice, there is.

Reageer