vector polymorphique de pointeurs sur animaux
bonjour,
j'ai un petit souci, je veux créer un vector d'animaux ( Faune.h) qui hérite de la classe vector pour le moment j'ai fait un truc dans ce gout là :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| #ifndef FAUNE
#define FAUNE
#include "./animal.h"
#include <vector>
using namespace std;
typedef vector<animal*> VecAnim;
class Faune:public VecAnim{
public:
Faune():VecAnim(){}
~Faune(){this->clear();}
void add_animal(animal *a){
push_back(a);
}
};
#endif |
Dans mon main(), ça ca passe :
Code:
1 2 3 4 5 6
| Faune f;
lapin l;
lapin * pLap =&l;
f.add_animal(pLap);
f[0]->try_manger(); |
mais pas quand je fais un new :
Code:
1 2
| f[0]=new lapin();
f[0]->try_manger(); |
la compilation est ok mais j'ai une erreur de segmentation !
si quelqu'un peut me renseigner, je viens de commencer l'objet et je maitrise pas trop !
merci d'avance !!!!
porco