我有以下基于组件的架构。如何从特定组件的更新功能中跳出更新组件的管理器循环?
零件
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();
}
(请注意,为简单起见,我在此示例中忽略了访问器。)