Here is what people usually do when creating a bullet class. Because bullets get
created and destroyed so fast, and because there are so many of them or can be. You
are better of using some raw arrays instead. Put a maximum cap on the number of bullets created. For example you can do something like this :
struct Bullet{
vector3f startPosition;
vector3f velocity;
};
template<int SIZE>
class BulletArray {
private:
boost::array<Bullet,SIZE> bulletList;
int currentSize;
public:
BulletArray(): currentSize(){}
bool addBullet(const Bullet& b){
if(isBulletFull()) return false;
bulletList[currentSize++] = b;
return true;
}
//...more methods
};