J'ai une classe Animaux, et à partir de ces animaux spécifiques sont dérivés. J'ai une liste d'animaux appelés mItems. Je veux voir si mes lions ont faim. J'ai créé des fonctions virtuelles dans ma classe Animaux:Le mystérieux Seg. Faute
virtual void IsLion() {return false;}
virtual void IsHungry() {return false;}
virtual void SetHungry(bool state) {}
Dans ma classe de Lion J'ai étendu ces:
virtual void IsLion() {return true;}
virtual void IsHungry() {return mHungry;}
virtual void SetHungry() {mHungry = state;}
mHungry est une variable membre booléen qui représente si oui ou non le lion a faim. MItems est une liste de pointeurs vers des objets CAnimal.
Si un Lion a faim, il est mort! Le problème que je suis est segfaults sans fin. Je ne peux pas identifier où je vais mal. J'ai une fonction qui est essentiellement équivalente à celle qui actualise périodiquement les lions d'avoir faim, alors j'appelle ça. Il semble que cela segmages lorsque j'essaie de supprimer les éléments de mItems. Des idées?
Compilez avec -g et exécutez-le via un débogueur. – Sinkingpoint
vous revenez pour les fonctions vides? – billz
Supprimer des éléments d'une collection que vous itérez est un jeu dangereux – bengoesboom