Hey, en C++, I tienen un vector de tipo:vector iteradores de reparto
vector<BaseClass*> myVector;
En la que, I inserto (push_back) punteros de clases derivadas en ella.
Ahora, yo quiero a pop volver sus elementos por lo que hago esto:
vector<ADlgcDev*>::iterator iter;
for (iter = myVector.rbegin(); iter != myVector.rend(); iter++)
{
// but before I pop it, I need to shutdown it down
// so I cast this
// but this way, I'm unable to call the function
(DerivedClass*(*iter))->Shutdown();
myVector.pop_back();
}
sino como una mención en los comentarios antes de que el pop, necesito llamar a su apagado() método y el reparto no funciona correctamente también ¿Alguna resolución? o es imposible?
Por cierto, su bucle está roto - deje su bucle 'for' sin cambios y elimine' myVector.pop_back() ', o deje eso en y cambie a un bucle' while' que examine el elemento 'back()' cada vez que sbi sugiere. –
¿Cómo se rompe mi lazo? – akif
Si realiza mentalmente los pasos con una matriz de 10 elementos, encontrará que solo procesa los primeros 5, porque para ese momento ya ha eliminado los últimos 5 con 'pop_back()'. –