#pragma once #include "Tool/IntrusiveList.hpp" #include "Tool/RefPtr.h" #include "Tool/RefObject.h" #include "Tool/TagGed.h" #include class Actor; class Component : public RefObject, public TagGed, protected IntrusiveListValue> { private: /* data */ std::string m_Name; public: Component(/* args */); ~Component(); virtual void Init(); virtual void HandleEvents(SDL_Event *e); virtual void Update(float deltaTime); virtual void Render(float deltaTime); virtual void Clear(); using IntrusiveListValue>::GetNext; using IntrusiveListValue>::GetPrev; void SetName(std::string name); public: Actor *Parent; // 指向父对象的指针,用于访问父对象 };