有这个代码:
void set(list<Person*>* listP){
Person timmy = Person(10);
listP->push_back(&timmy);
}
int main()
{
list<Person*> listP;
set(&listP);
Person* timmy = listP.back();
}
如果我理解正确(请纠正我) timmy 是在堆栈上分配的,所以当我在 main 中使用它们时,我不能指望 timmy 的值。我对么?我需要像这样创建 timmy:
Person* timmy = new Person(10);
为了在堆上而不是在堆栈上创建它,所以它不会在方法返回后被销毁?
谢谢