我有以下基于组件的架构。如何从特定组件的更新功能中跳出正在更新组件的管理器循环?中断代码执行
组件
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();
}
(请注意,我忽略accesors在本例中为简单起见。)
+1仅包含代码的相关部分:) – Alex