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

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;
	}
}
Merci de votre aide.