У меня есть этот код: std :: vector не сохраняя данные?
void BaseOBJ::update(BaseOBJ* surround[3][3])
{
forces[0]->Apply(); //in place of for loop
cout << forces[0]->GetStrength() << endl; //forces is an std::vector of Force*
}
void BaseOBJ::AddForce(float str, int newdir, int lifet, float lifelength) {
Force newforce;
newforce.Init(draw, str, newdir, lifet, lifelength);
forces.insert(forces.end(), &newforce);
cout << forces[0]->GetStrength();
}
Теперь, когда я называю AddForce и сделать бесконечную силу с силой одной стороны, это соиЬ-х 1. Но когда обновление называется, он просто выводит 0 , как будто силы больше не было.
Спасибо, работал как шарм! +1 – Chris
+1 И не забудьте вызвать delete для каждого элемента вектора при выходе. –
@Chris: Не забудьте вызвать 'delete'. Еще лучше - используйте 'boost :: ptr_vector' (http://www.boost.org/doc/libs/1_45_0/libs/ptr_container/doc/ptr_vector.html) –