#pragma once class Engine; class System { public: virtual ~System() {} void SetEngine(Engine* engine) { m_engine = engine; } virtual void Initialize() {} virtual void Cleanup() {} virtual void Update() {} protected: Engine* m_engine; };