Acceso al método de una clase derivada conIterator
Publicado por David (1 intervención) el 16/11/2010 19:29:14
Buenas, a ver si pueden solucionarme el problema que tengo.
Tengo dos classes, una clase A y una subclasse de A llamada B:
Class A {
.....
virtual void draw()
}
Class B: public A {
....
void draw()
}
Dispongo de una lista cómo la siguiente:
std::list<A> lista;
A la cual añado tanto elementos de la classe A cómo elementos de la classe B. El problema me surge cuando quiero recorrer todos los elementos de la lista y hacer una llamada al método draw:
std::list<A>::iterator it;
it = lista.begin();
while(it != lista.end()) {
it->draw();
it++;
}
Siempre me llama al método implementado en la classe A, independientemente de la clase añadida sea del tipo A o B. ALguna solución?
Tengo dos classes, una clase A y una subclasse de A llamada B:
Class A {
.....
virtual void draw()
}
Class B: public A {
....
void draw()
}
Dispongo de una lista cómo la siguiente:
std::list<A> lista;
A la cual añado tanto elementos de la classe A cómo elementos de la classe B. El problema me surge cuando quiero recorrer todos los elementos de la lista y hacer una llamada al método draw:
std::list<A>::iterator it;
it = lista.begin();
while(it != lista.end()) {
it->draw();
it++;
}
Siempre me llama al método implementado en la classe A, independientemente de la clase añadida sea del tipo A o B. ALguna solución?
Valora esta pregunta
0