我有以下基於組件的架構。如何從特定組件的更新功能中跳出正在更新組件的管理器循環?中斷代碼執行
組件
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