Herencia y vectores en C++

PatriDA
10 de Junio del 2009
Hola a todos,

tengo un problema relacionado con la herencia y los vectores en C++, y me gustaria saber si alguien puede echarme una mano....

Tengo una clase channel, de la cual heredan tres clases: channelNormal, channelAmplitude y channelTacho. Necesito almacenar en un vector una serie de channels, que pueden ser de cualquiera de estas 3 clases hijas. Para poder hacerlo, defini un vector<channel>, puesto que asi podia almacenar alli (o eso creia yo) cualquier objeto que derivara de channel, es decir, channelNormal, channelAmplitude y channelTacho.

El problema es que una vez añado los channels al vector, pierden todos los atributos que tienen por ser channelNormal, channelAmplitude o channelTacho, quedandoles solo los atributos de channel....

Necesitaria tener para cada uno de los channels todos sus atributos, para ello he creado las distintas clases. Podriais echarme una mano, por favor??

Una solucion que se me ha ocurrido es crear un vector<channel *>: creo que al guardar solo un puntero al objeto, el objeto se mantendra tal y como es, sin perder atributos por el camino....

Que opinais?? Estaria muy agradecida si alguien me pudiera dar una solucion!!

Miles de gracias por adelantado!!

Patricia

AURA
10 de Junio del 2009
HOLA NO SE SI T SIRVA MI IDEA PERO PUEDES CONSIDERARLA...

DICES QUE TIENES UN CHANNEL PADRE Y Q ESE A SU VEZ TIENE 3 HIJOS, YO CONSIDERARIA HACER UN VECTOR DE REGISTRO DE CADA UNO DE ELLOS DOND LOS CAMPOS SERIAN LOS Q NECESITAS MAS UNO Q LLEVE A Q CHANNEL PERTNECEN Y POR PASO POR PARAMETRO LE PACS LA INFORMACION AL VECTOR PRINCIPAL Q ES EL PADRE YA Q EN EL DEBEN RECIDIR TODOS SUS HIJOS, DE ESE MODO CREO Q ESTA TU SOLUCIÓN ESPERO T SIRVA, SINO Q ENCUENTRES PRONTO LO Q BUSCAS. ME AVISAS COMO LO HICIST.