Considera la seguente funzione C ++:
void doStuff() {
Thing thingA;
Thing thingB;
thingA.doSomething();
// .. etc
}
Durante l'esecuzione di questa funzione, le variabili thingA e thingB sono allocate nello stack. Ciò significa che la variabile thingA rappresenta un indirizzo nello stack e il suo valore è ciò che viene assegnato in questo indirizzo (correggimi se ho torto).
Ciò che non capisco è questo: quando chiamiamo thingA.doSomething() , come fa la CPU a sapere quale sia l'indirizzo rappresentato da thingA ? Il valore mantenuto da thingA è attualmente nascosto nello stack sotto altri dati. In che modo la CPU sa qual è l'indirizzo che conduce a questo valore, al fine di raggiungere questi dati?