The premise is: I'm making a particle system. I have a ParticleManager, which has a vector of ParticleSystem objects, which has a vector of type Particle. However, I also have the class Snowball, which inherits from Particle, and it has a ParticleSystem of it's own, as it leaves a trail of particles.
#pragma once
#include "ParticleSystem.h"
class Snowball : public Particle
{
private:
ParticleSystem ps;
public:
Snowball(){};
Snowball(Point2D pos, RECT* viewport);
void Update();
void Draw(GraphicsM * pGraphicsModule);
};
This is the Snowball.h file, and the ParticleSystem one just has #include "Snowball.h" at the top, and uses Snowball throughout, as any given Particle can be a Snowball. How do I resolve this, either through a change of architecture or the order of code?