bonjour,

je suis sur un projet et j'ai besoin de me faire une liste générique.

la cellule est définie :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
Cellule<T>* pCell= new Cellule<T>();
l'erreur :
[Linker error] undefined reference to `Cellule<int>::Cellule()'

avez vous une idée?

merci