class foo {
public:
foo() : foo_member1(1)
int foo_member1;
void do_something() {foo_member1++;}
}
int main(){
foo my_foo;
my_foo.do_something();
}
Где все хранится в приведенном выше примере кода?Это было то, о чем я думал, когда ехал домой, и смутился, что не смог ответить наверняка.Я создаю объект, содержащий переменную как в стеке.Когда я вызываю do_something и ввожу новый кадр стека, как у него есть доступ к переменной-члену, которая была сохранена в предыдущем кадре стека как часть объекта my_foo?Это скопировано в?Прошло тихо внизу по ссылке?Или это на самом деле оказывается в куче?Или существует какой-то особый механизм, с помощью которого код может получить доступ к чему-то, что предшествует ему в стеке?