私は次のコンポーネントベースのアーキテクチャを持っています。特定のコンポーネントの更新機能内から、コンポーネントを更新しているマネージャーのループから抜け出すにはどうすればよいですか?
成分
class Component
{
virtual void Update() = 0;
};
マネジャー
class Manager
{
vector<Component*> List;
void Add(Component* cpnt)
{
List.push_back(cpnt);
}
void Loop()
{
while(1)
{
for (auto i = List.begin(); i != List.end(); i++)
i->Update();
}
}
};
例
class Example : public Component
{
void Update()
{
// want to break out of mgr's while loop from here
}
};
int main()
{
Manager mgr;
mgr.Add(new Example());
mrg.Loop();
}
(この例では、簡単にするためにアクセサーを無視していることに注意してください。)