![]() |
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 :molesto: Hormiga** vectorHormigasAleatorio = this->crearEstructuraAletoriaRecorridoHormigas; :molesto: //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?:pensando: Gracias Andres |
Re: problemas de punteros Los paréntesis que te faltan al final de esta linea: Cita:
debería estar así: Cita:
|
Re: problemas de punteros Muchas gracias. No te imaginas el tiempo que perdi por esa gilada |
Re: problemas de punteros De nada :adios: |
| La zona horaria es GMT -6. Ahora son las 19:43. |
Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.