3 ugnjezdene metode?


#1

Moj online teacher C++ mi dao zadatak koji ne mogu da resim.
Evo citata:
//Zadatak Uzmite 3 ugnjezdene metode, svaka nek ima po dvije varijable
//i nacrtajte kako izgleda alokacija na Steku za te tri metode

Nije mi jasno kako METODE mogu biti ugnjezdene. I to sa po 2 promenljive. Koliko ja znam, metode su funkcije. Petlje su petlje, to nisu metode i nemaju promenljive nego uslove. A if, else i switch su izjave. I kako onda da napravim 3 ugnjezdene metode??? To u C++ valjda ne moze (auto nisam ucio). Jedino mi rekurzija pala na pamet… al to su 2 funkcije ugnjezdene i ne znam kako da tu naguram dve promenljive.
Ako neko ima neku ideju, neka napise… :frowning_face:


#2

Pošto je stek u pitanju, moje nagađanje jeste da se u zadatku radi o prikazivanju stanja steka nakon što se pozovu tri funkcije sa po dve varijable u njima, tj.

void f3() {
    int r = 5;
    int z = 7;
    // Prikazati stanje steka ovde
}
void f2() {
    int c = 3;
    int e = 4;
    f3();
}
void f1() {
    int k = 1;
    int a = 2;
    f2();
}
int main() {
    f1();
    return 0;
}

Ako se specifično misli na metode a ne funkcije, onda je verovatno ista stvar samo unutar strukture/klase.


#3

Puno hvala na odgovoru. Sad sam razumeo. Evo kako sam uradio:

#include
using namespace std;

int f3()
{
int r = 5;
int z = 7;
return r + z;
// steak prikazan ovde
// crtez je ispod koda
}
int f2()
{
int c = 3;
int e = 4;
return f3() + c + e;
}
void f1()
{
int k = 1;
int a = 2;
cout << "Suma svih integera je: " << f2() + k + a;
}
int main()
{
f1();
return 0;
}

// STEAK:
// ______________________
// | |
// | |
// | |
// | |
// | |
// |_____________________|
// | f3()=5+7=12 |
// |_____________________|
// | f2() |
// |_____________________|
// | f1() |
// |_____________________|
// | main() |
// |_____________________|

Hvala jos jednom. Probacu sve da naguram u klasu, ali bitno je da sam razumeo :blush: