Bonjour.
J'ai un problème d'héritage d'une classe passée en paramètre template déclarée comme suit:lorsque je ne déclare pas ses fonctions, le code compile.
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 };
par contre, quand j'explicite ses fonctions à l'exterieur de la classe mais dans le même .h avec le code :Il me fait l'erreur suivante:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 ncp_Elem<class Elem>::ncp_Elem(const unsigned int &id):numid(id) {}j'utilise VC++2005 express.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> ]
si vous avez une idée....
merci
Partager