Bonjour à tous, voilou j'ai un petit problème en utilisant des class template, j'aimerais avoir un membre statique "static int" mais je me bouffe a chaque fois l'erreur LNK2001.
Le but de ma classe est de me fournir une liste et de pouvoir l'utiliser sans avoir à créer un index d'itération pour me déplacer dedans. L'index est directement inclus dans la liste et ce nomme thisCell (c'est enfaite un peu le mot clé "this" ).
Voici mon code :
Code :
- template<class element> class list
- {
- private :
- element info;
- list* thisCell;
- list* nextCell;
- list* previousCell;
- static int numElement;
- public :
- list();
- ~list();
- inline element get();
- inline void next();
- inline void previous();
- inline void first();
- inline void last();
- inline bool isEmpty();
- inline HRESULT insert(const element& );
- inline HRESULT remove();
- inline HRESULT destroy();
- };
- template<class element> inline list<element>::list()
- {
- info = NULL;
- thisCell = NULL;
- previousCell = NULL;
- nextCell = NULL;
- numElement++;
- }
- template<class element> inline list<element>::~list()
- {
- numElement--;
- }
|
Dans le main j'ai juste l'initialisation d'une liste : list<int> LEntier;
Et quand je n'utilise pas de membres statiques pas de problèmes donc la classe est bien implémentée pas de problèmes d'inclusion de .hpp
Voila l'erreur de link :
Linking...
testoutils.obj : error LNK2001: unresolved external symbol "private: static int list<int>::numElement" (?numElement@?$list@H@@0HA)
C:\*****\testoutils\Debug\testoutils.exe : fatal error LNK1120: 1 unresolved externals
Message édité par styl26 le 22-12-2007 à 19:11:33