Foros del Web » Programación para mayores de 30 ;) » C/C++ »

problemas de punteros

Estas en el tema de problemas de punteros en el foro de C/C++ en Foros del Web. 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: ...
  #1 (permalink)  
Antiguo 14/11/2007, 18:00
 
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
  #2 (permalink)  
Antiguo 15/11/2007, 07:05
Avatar de _Lucifer_  
Fecha de Ingreso: junio-2006
Mensajes: 1.662
Antigüedad: 18 años, 7 meses
Puntos: 28
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:
  #3 (permalink)  
Antiguo 16/11/2007, 20:13
 
Fecha de Ingreso: noviembre-2007
Mensajes: 4
Antigüedad: 17 años, 1 mes
Puntos: 0
Re: problemas de punteros

Muchas gracias.
No te imaginas el tiempo que perdi por esa gilada
  #4 (permalink)  
Antiguo 19/11/2007, 06:35
Avatar de _Lucifer_  
Fecha de Ingreso: junio-2006
Mensajes: 1.662
Antigüedad: 18 años, 7 meses
Puntos: 28
Re: problemas de punteros

De nada
__________________
Si crees que no tiene sentido, etonces probablemente lo tenga... :arriba:
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:21.