Hola a todos
Estoy intentando hacer un contenedor de objetos de una clase (SMRmodulo) en otra clase (SMRentorno). En la clase SMRentorno tengo un atributo SMRmodulo **modulosF; y un metodo para agregar modulos al vector (AgregarModulo) que tiene la siguiente definicion:
void SMRentorno::AgregarModulo(SMRmodulo *mod)
{
SMRmodulo **aux; //contenedor aux para aumentar la dim y meter el nuevo mod
int numA,num;
if(mod->GetNivel()==SMR_N_MODULO) // si el modulo es del nivel que quiero
{
numA=this->GetNumModF(); // numA=numero de modulos sin añadir mod
num=numA+1; // num= numero de modulos añadiendo mod
aux=new SMRmodulo*[num]; // reserva de memoria en aux
for(int i=0;i<numA;i++) // recorro el contenedor de la clase SMRentorno
{
aux[i]=new SMRmodulo(); // reserva de memoria
aux[i]=(this->modulosF)[i]; //y voy metiendo en aux su contenido
}
aux[numA]=new SMRmodulo(); // reserva de memoria
aux[numA]=mod; // en el elemento [numA] meto el nuevo modulo
//*********** AQUI ES DONDE ESTA EL PROBLEMA **********
for(int i=0;i<numA;i++) //recorro el contenedor de la clase
delete [] this->modulosF[i]; // y borro los modulos que tiene
delete [] this->modulosF; // y depues borro la reserva de memoria
//****************************************************
this->modulosF=aux; // finalmente hago que el ptro de la clase apunte al ptro aux
this->SetNumModF(num); // actualizo el numero de modulos
}
}
El problema es que al intentar meter varios modulos y recorrerlos para ver si se han agregado bien, lo que obtengo es basura.
Si no hago el borrado funciona bien, pero claro voy dejando una copia de todos los modulos en memoria
Si alguien puede echarme una mano le estare agradecido
Salu2