Tengo una clase base de la cual heredan 2: Clasehija1 y Clasehija2, todos los objetos de las clases hijas los quiero tener en una sola lista.
Cómo puedo hacer esto?
Hasta el momento tengo algo parecido a lo siguiente:
Código C++:
Ver original
list <ClaseBase *> lstClaseBase; ClaseBase *objCasehija1 = new Clasehija1(); ClaseBase *objCasehija2 = new Clasehija2();
Código C++:
Ver original
lstClaseBase.pushback(objCasehija1); lstClaseBase.pushback(objCasehija2);
Pero no sé si lo anterior está correcto, además necesito una función para muestre el contenido de lstClaseBase.
Tengo algo como lo siguiente pero no me funciona:
Código C++:
Y en su invocación tengo esto:Ver original
void listar(list <ClaseBase *> lst) { list <ClaseBase *>::iterator it; for( it = lst.begin(); it != lst.end(); it++ ){ } }
Código C++:
Ver original
listar(lstClaseBase);
Yo esperaría ver el mensaje "un elemento" pero veo nada.
Lo que pretendo hacer es lo que les planteaba al principio: en una sola lista, guardar diferentes objetos los cuales son heredados de una clase (la lista es del tipo de la clase base).
Ojalá me puedan dar una mano con esto.
Gracias desde ya.
Saludos