public:
Sprite(GraphicsEngine graphics, LPCWSTR texture_path, float x, float y, float width, float height);
~Sprite(void);
I'm sending a reference from the GraphicsEngine into the Sprite here, right? But then I have to include the GraphicsEngine header file? Or?
No you are not. You are passing graphics engine by value. In this case you would have to include GraphicsEngine.h in Sprite.h, but this will not solve the problem due to a circular dependency. Instead you should try what I write above, ie. "GraphicsEngine& engine" for the constructor and also storing a reference to the engine: "GraphicsEngine& m_engine;".