我有以下内容main()
:
vector<Person*> alist;
add(alist);
printDetail(alist);
然后,在另一个文件中,我称之为它function.cpp
,在这个文件中,我有以下方法:
void add(vector<Person*> &mylist)
{
Person temp_p("firstname1","lastname1",20);
mylist.push_back(new Person("firstname2","lastname2",20));
mylist.push_back(&temp_p);
printDetail(mylist);
}
void printDetail(vector<Person*> mylist)
{
for(int i=0;i<mylist.size();i++)
{
mylist[i]->display();
}
}
当我运行这个程序时,方法printDetail(mylist)
内部的add()
, 将毫无问题地打印出两个结果,但在 中main()
,只会firstname2
打印出一个。
谁能告诉我为什么会这样?