Ver Mensaje Individual
  #1 (permalink)  
Antiguo 14/11/2007, 18:00
spike886
 
Fecha de Ingreso: noviembre-2007
Mensajes: 4
Antigüedad: 17 años, 1 mes
Puntos: 0
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