Retroceder   Foros del Web > Temas generales de computación > Programación > C/C++

Respuesta
 
Herramientas Desplegado
Antiguo 14-nov-2007, 17:00   #1 (permalink)
spike886 ha deshabilitado el karma
 
Fecha de Ingreso: noviembre-2007
Mensajes: 4
problemas de punteros

Estoy escriviendo un programa para la facultad pero me quede trabado con un problema espero que me puedan ayudar.

Aca pongo el codigo del programa:

.h

#include "Lista.h"
#include "Hormiga.h"

class Hormiga;
class ListaHormigas{

private:

Lista<Hormiga*>* listaHormigas;


public:

ListaHormigas(); //post:crea la lista de hormigas vacia

ListaHormigas(Hormiga*); //Post:crea la lista de hormigas con la hormga indicada

~ListaHormigas(); //post:livera todo

void agregarHormiga(Hormiga*); //post:agrega una hormiga a la lista de hormigas

void moverTodas(); //Pre: tiene hormigas cargadas
//post:todas las hormigas hicieron sus movimientos


private:

void setListaHomigas(Lista<Hormiga*>*); //post:Cambia la posicion a la que apunta el puntero listaHOrmigas

Lista<Hormiga*>* getListaHormigas(); //post:devuelve la posicion a la que esta apuntado listaHormigas

Hormiga** crearEstructuraAletoriaRecorridoHormigas(); //Pre:ya tiene hormigas cargadas



cpp


#include "ListaHormigas.h"
#include <stdlib.h>
#include <time.h>



ListaHormigas::ListaHormigas()
{
//inicializo la funcion para los random
srand(time(NULL));

//creo la lista para la lista de hormigas
this->setListaHomigas(new Lista<Hormiga*>);
}


ListaHormigas::ListaHormigas(Hormiga* hormiga)
{
//inicializo la funcion para los random
srand(time(NULL));

//creo la lista para la lista de hormigas
this->setListaHomigas(new Lista<Hormiga*>);

//ingreso el dato
this->agregarHormiga(hormiga);
}


ListaHormigas::~ListaHormigas()
{
/* //livero los recursos ocupados por las hormigas
IteradorLista iterador=this->getListaHormigas()->iterador();
while(iterador.tieneSiguiente())
{
delete iterador.siguiente();
} */


//livero los recursos de la lista creada
delete this->getListaHormigas();
}


void ListaHormigas::agregarHormiga(Hormiga* hormiga)
{
//agrego la hormiga a la lista
this->getListaHormigas()->agregar(hormiga);
}


void ListaHormigas::moverTodas()
{
//Declaro una variable y la inicialiso con la cantidad de hormigas
int tamanio=this->getListaHormigas()->tamanio();

//le cargo el vector odenado aleatoriamente con la hormigas para ser procesado
Hormiga** vectorHormigasAleatorio = this->crearEstructuraAletoriaRecorridoHormigas; //error

//proceso todas las hormigas del vector
for(int i=0;i<tamanio;i++)
{
vectorHormigasAleatorio[i]->hacerMovimiento();
}

//livero los recurso ocupados por el vector
delete vectorHormigasAleatorio; // como se hace para liverar esto????????????????????

}


void ListaHormigas::setListaHomigas(Lista<Hormiga*>* punteroListaHormigas)
{
this->listaHormigas=punteroListaHormigas;
}


Lista<Hormiga*>* ListaHormigas::getListaHormigas()
{
return this->listaHormigas;
}


Hormiga** ListaHormigas::crearEstructuraAletoriaRecorridoHor migas()
{
//averiguo la cantidad de hormigas
int tamanioListaHormigas=this->getListaHormigas()->tamanio();

//creo un vertor de punteros para alocar a todas las hormigas
Hormiga** estructuraOrdenadaAleatoriamente = new Hormiga*[tamanioListaHormigas];

//inicialzo todas las posiciones a NULL
for(int i=0; i<tamanioListaHormigas; i++)
estructuraOrdenadaAleatoriamente[i]=NULL;

//creo un iterador para recorrer la lista
IteradorLista<Hormiga*> iterador=this->getListaHormigas()->iterador();


int random, Auxiliar;

//recorro la lista y a cada hormiga la voy agregando aleatoriamente en la lista
while(iterador.tieneSiguiente())
{
//mientra la posicion este ocupada busco otra
do
{
//obtengo el numero aleatorio de la pocicion del vector
random=rand()*tamanioListaHormigas;
}
while (estructuraOrdenadaAleatoriamente[random]!=NULL);

//ingredo la hormiga en el vector
estructuraOrdenadaAleatoriamente[random]=iterador.siguiente();

}

return estructuraOrdenadaAleatoriamente;


}


el error que me tira es el siguiente:

error: argument of type `Hormiga**(ListaHormigas::)()' does not match `Hormiga**'

¿lo que pasa es que se puensa que es una instacia a metodo?


Gracias Andres
spike886 está desconectado   Responder Citando
Antiguo 15-nov-2007, 06:05   #2 (permalink)
_Lucifer_ tiene algunos puntos positivos de karma
 
Avatar de _Lucifer_
 
Fecha de Ingreso: junio-2006
Mensajes: 1.588
Re: problemas de punteros

Los paréntesis que te faltan al final de esta linea:
Cita:
Hormiga** vectorHormigasAleatorio = this->crearEstructuraAletoriaRecorridoHormigas;
es un error de copy & paste o no te habías dado cuenta?

debería estar así:
Cita:
Hormiga** vectorHormigasAleatorio = this->crearEstructuraAletoriaRecorridoHormigas();
Saludos
__________________
Si crees que no tiene sentido, etonces probablemente lo tenga... :arriba:
_Lucifer_ está desconectado   Responder Citando
Antiguo 16-nov-2007, 19:13   #3 (permalink)
spike886 ha deshabilitado el karma
 
Fecha de Ingreso: noviembre-2007
Mensajes: 4
Re: problemas de punteros

Muchas gracias.
No te imaginas el tiempo que perdi por esa gilada
spike886 está desconectado   Responder Citando
Antiguo 19-nov-2007, 05:35   #4 (permalink)
_Lucifer_ tiene algunos puntos positivos de karma
 
Avatar de _Lucifer_
 
Fecha de Ingreso: junio-2006
Mensajes: 1.588
Re: problemas de punteros

De nada
__________________
Si crees que no tiene sentido, etonces probablemente lo tenga... :arriba:
_Lucifer_ está desconectado   Responder Citando
Respuesta

No hay votos aún.


Herramientas
Desplegado

Normas de Publicación
No puedes crear nuevos temas
No puedes responder temas
No puedes subir archivos adjuntos
No puedes editar tus mensajes

BB code is Activado
Caritas están Activado
[IMG] está Activado
Código HTML está Desactivado


La Zona horaria es GMT -6. Ahora son las 15:37.


Message Board Statistics

LinkBacks Enabled by vBSEO 3.1.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93