Voila, je veux créer une classe conteneur générique et je déclare donc la classe dans un fichier d'en-tête (.h) puis je la définit dans un fichier .cpp.
Le problème, c'est que dans le programme, le lien vers les méthodes de la classe ne se font pas alors que si je fait un copier coller et que je définit les méthodes dans le fichier d'en-tête, tout marche.
D'où ca peut venir ?
Pour ceux qui veulent voir le code, le voici en simplifier :
Conteneur.h
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
22
23
24
25 #ifndef CONTENEUR_H #define CONTENEUR_H template<class U> struct Liste { U *Item; Liste<U> *Next; }; template<class T> class Conteneur { private: Liste<T> *m_pFirst; int m_iNb; public: Conteneur(); virtual ~Conteneur(); }; #endif // CONTENEUR_H
Conteneur.cpp
Merci de votre aide.
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
22
23
24
25 #include "Conteneur.h" template<class T> Conteneur<T>::Conteneur() { m_pFirst = NULL; m_iNb = 0; } template<class T> Conteneur<T>::~Conteneur() { // Destruction de tous les objets Liste<T> *Temp, *Temp2; Temp = m_pFirst; while (Temp != NULL) { Temp2 = Temp->Next; delete Temp->Item; delete Temp; Temp = Temp2; } }
Partager