我有一堂课foo
:
class foo{
public:
int i;
};
还有一个类bar
:
class bar{
public:
foo* foo_;
};
和类似的代码:
int i=0;
vector<bar*> fs;
while(i<100){
foo f;
f.i = i;
bar* b = new bar;
b->foo_ = &f;
fs.push_back(b);
i++;
}
我希望每个都bar->foo_
指不同的foo
,所以当我有:
for(i=0;i<fs.size();i++){
cout << (fs[i]->foo_->i) << "\n";
}
我希望程序打印数字 0 到 99,但是当我运行代码时,我看到 100 行 99!
为什么所有指针都指向最后一个对象?