Bonjour.

J'ai un problème d'héritage d'une classe passée en paramètre template déclarée comme suit:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
template <class Elem> class ncp_Elem : public Elem {
	private: 
		unsigned int numid;//id of Elem in list
	public:
		ncp_Elem(const unsigned int & id);
		ncp_Elem(const ncp_Elem<Elem> & elm, const unsigned int & id);
		~ncp_Elem(); //delete control
};
lorsque je ne déclare pas ses fonctions, le code compile.

par contre, quand j'explicite ses fonctions à l'exterieur de la classe mais dans le même .h avec le code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
ncp_Elem<class Elem>::ncp_Elem(const unsigned int &id):numid(id)
{}
Il me fait l'erreur suivante:
1>c:\...\ncp_mat.h(11) : error C2504: 'Elem' : classe de base non définie
1> c:\...\ncp_mat.h(57) : voir la référence à l'instanciation de la classe modèle 'ncp_Elem<Elem>' en cours de compilation
1> with
1> [
1> Elem=Elem
1> ]
j'utilise VC++2005 express.


si vous avez une idée....

merci