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

problema con lista, novato

Estas en el tema de problema con lista, novato en el foro de C/C++ en Foros del Web. Hola, estoy haciendo un ejemplo muy simple en C++ ya que soy novato y estoy practicando un poquillo. Mi idea es hacer una clase animal ...
  #1 (permalink)  
Antiguo 30/09/2007, 18:57
 
Fecha de Ingreso: enero-2007
Mensajes: 55
Antigüedad: 17 años, 10 meses
Puntos: 1
problema con lista, novato

Hola, estoy haciendo un ejemplo muy simple en C++ ya que soy novato y estoy practicando un poquillo. Mi idea es hacer una clase animal y unas subclases de animales (ej: perro, rana, gato, etc). Uno de los métodos que tiene cada animal es que puede comerse a otros animales y tenerlos en la tripa. Mi idea para implementar eso era que cada clase Animal tuviese una lista de Animales que representa lo que tiene en la tripa. Para tener por ejemplo un perro que dentro de su "tripa" tuviese un gato y una rana. Aquí os pongo el código que llevo y que me da error (me pone que la lista no tiene un tamaño fijo). Muchas gracias de antemano y siento si es una pregunta tonta, pero son novatillo, sorry.

Este es el código que llevo escrito de la clase Animal:

#ifndef animals_hxx
#define animals_hxx


#include <iostream>
#include <string>
#include <list>



class Animal
{

typedef std::list<Animal*> Tripa;

public:
virtual void escriuEspecie() const
{
std::cout << "...indefinida..." << std::endl;
}

void nom(std::string elNom)
{
_nom = elNom;
}
std::string& nom()
{
return _nom;
}

/////

virtual void comer(Animal& unAnimal)
{
tripa.push_back(&unAnimal);
}
std::list& verTripa()
{
std::cout << "l'animal anomenat tiene en la tripa a" << std::endl;

for (Tripa::iterator it=tripa.begin(); it!=tripa.end(); it++)
{
std::cout << (*it)->nom() <<std::endl;
}

}


////


private:
Tripa tripa;
////

private:
std::string _nom;
};

class Perro : public Animal
{
public:
virtual void escriuEspecie() const
{
std::cout << "perro" << std::endl;
}
};

class rana: public Animal
{
public:
virtual void escriuEspecie() const
{
std::cout << "rana" << std::endl;
}
};

class Gato : public Animal
{
public:
virtual void escriuEspecie() const
{
std::cout << "gato" << std::endl;
}
};

#endif
  #2 (permalink)  
Antiguo 02/10/2007, 14:14
Avatar de Instru  
Fecha de Ingreso: noviembre-2002
Ubicación: Mexico
Mensajes: 2.751
Antigüedad: 22 años
Puntos: 52
Re: problema con lista, novato

Jejejeje. Ese codigo no parece tnato de principiante . Aparte es muy muy ilegible. Intenta usar alguna etiqueta de formato para ponerlo en el for que creeme me da muucha flojera leerlo.

Saludos
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 13:47.