私はこのコードを持っている:更新が呼び出されたときに、私はAddForceを呼び出すと1の強さと無限の力を作るとき、今 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();
}
を、それはしかし、それだけで0を出力COUTの1あたかもその力がもはや存在しないかのように。
ありがとう、魅力的なように働いた! +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)です。 –