JohnBeton
Legacy Member
Vind het niet meteen terug via google, dus stel de vraag hier.
Veronderstel volgende C++ code (ingekort, enkel relevante code weergegeven):
DoIt maakt dus een lokale var xToEnqueue aan, dewelke aan enqueue wordt gegeven.
Als er later in het programma doItAgain wordt opgeroepen, geeft dit dan de originele TypeX variabele terug? Of is de ondertussen (mogelijk) overschreven door de andere code die aan het draaien is?
Ik denk het 2e: xToEnqueue is immers een variabele die leeft op de stack: na het uitvoeren van enqueue wordt xToEnqueue gereleased & kan die overschreven worden door andere functie aanroepen. Of niet?
Veronderstel volgende C++ code (ingekort, enkel relevante code weergegeven):
Code:
void enqueue(TypeX& t);
TypeX dequeue();
void doIt()
{
TypeX xToEnqueue;
enqueue(xToEnqueue);
}
TypeX doItAgain()
{
TypeX tX = dequeue();
tX.doMethod();
return tX;
}
int main(void)
{
doIt();
//do alot more things
TypeX t2=doItAgain();
}
Als er later in het programma doItAgain wordt opgeroepen, geeft dit dan de originele TypeX variabele terug? Of is de ondertussen (mogelijk) overschreven door de andere code die aan het draaien is?
Ik denk het 2e: xToEnqueue is immers een variabele die leeft op de stack: na het uitvoeren van enqueue wordt xToEnqueue gereleased & kan die overschreven worden door andere functie aanroepen. Of niet?