struct parentCallBack{
virtual bool exec (object *entry) =0;
virtual ~parentCallBack() {};
};
struct Myobject:public object{
int data;
Myobject():data(5){}
};
struct MyCallBack : public ParentCallBack {
bool exec(object *entry)
{
Myobject *e =(Myobject*)entry;
print(e->data);
return true;
}
};
void execAllofObject(MyCallBack &callback){
for(OBJECT_SET::iterator it = objs.begin(); it!=objs.end();)
{
OBJECT_SET::iterator temp = it;//预先保存迭代器,防止迭代过程中迭代器失效
++it;
if(!callback.exec(*temp))
return ;
}
}