Pb Liste doublement chainée template
bonjour,
je suis sur un projet et j'ai besoin de me faire une liste générique.
la cellule est définie :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| #ifndef Cellule_h
#define Cellule_h
template <typename T> class Cellule
{
private:
T val;
Cellule<T>* suiv, *prec;
public:
Cellule();
Cellule(T v);
virtual ~Cellule();
virtual T getVal()const;
virtual void setVal(T);
virtual Cellule<T>* getSuiv()const;
virtual void setSuiv(Cellule<T> * s);
virtual Cellule<T>* getPrec()const;
virtual void setPrec(Cellule<T> * p);
};
#endif |
dans ma classe liste qui inclue cellule.h j'ai défini une fonction :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| template<class T> void Liste<T>::ajoutApres(Place p, T t)
{
Cellule<T>* pCell= new Cellule<T>();
if (estVide())
{setPremier(pCell);setDernier(pCell);}
else
{setPrecedent(pCell,p);
if (p==dernier()) {setSuivant(p,pCell);setDernier(pCell);}
else
{setSuivant(pCell,suivant(p));
setPrecedent(suivant(p),pCell);
setSuivant(p,pCell);}
}
nbElem++;
} |
j'ai une erreur sur la ligne :
Code:
Cellule<T>* pCell= new Cellule<T>();
l'erreur :
[Linker error] undefined reference to `Cellule<int>::Cellule()'
avez vous une idée?
merci