Original Post
I am trying to make a simple particle demo and I have two classes, "Particle" and "ParticleEmitter". The ParticleEmitter class has a pointer to a vector of pointers to "Particle" objects. For some reason I get Access Violation errors when trying to do anything with the vector, for example iterate through it. Can someone take a quick look and let me know where I'm going wrong?
ParticleEmitter.h
ParticleEmitter.cpp
ParticleEmitter.h
#ifndef __PARTICLE_EMITTER_H#define __PARTICLE_EMITTER_Hclass ParticleEmitter { public: ParticleEmitter(); ParticleEmitter(const Vector3f pPosition, const Vector3f pVelocity, int pNumParticles); ~ParticleEmitter(); Vector3f getVelocity(); Vector3f getPosition(); void move(); void emit(); void draw(); private: Vector3f m_Position; Vector3f m_Velocity; std::vector<Particle*> *m_Particles;};#endifParticleEmitter.cpp
ParticleEmitter::ParticleEmitter(const Vector3f pPosition, const Vector3f pVelocity, int pNumParticles) { this->m_Position = pPosition; this->m_Velocity = pVelocity; this->m_Particles = new std::vector<Particle*>(pNumParticles); for (int i=0; i<pNumParticles; i++) { Particle *p = new Particle(100.0f, 100.0f, 100.0f), Vector3f(0.0f, 0.0f, 0.0f), 5, 20); this->m_Particles->push_back(p); } }void ParticleEmitter::emit() { std::vector<Particle*>::iterator particleIterator; for (particleIterator = this->m_Particles.begin(); particleIterator != this->m_Particles.end(); ++particleIterator) { (*particleIterator)->move(); } }