Salut!
J'ai essayé d'implémenter une liste doublement chainée comme classe template.
Mais je ne suis pas arriver à définir les méthodes de la classe à l'extérieur de celle-ci et ai du les "rapatrier" à l'intérieur.
Voici une illustration minimale du problème:
Le compilo, g++ avec DevC++, me renvoie:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 template<typename T> class A{ T n; A(T a):n(a){}; T* createPointer(); }; T* A::createPointer(){ return &n; }
venant du fait qu'il ne comprend pas ce T qui en dehors de la classe n'a pas de signification.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 27 C:\DOCUME~1\PROPRI~1\Bureau\main_test.cpp expected constructor, destructor, or type conversion before '*' token 27 C:\DOCUME~1\PROPRI~1\Bureau\main_test.cpp expected `,' or `;' before '*' token
Sinon tout est bon:
marche sans problème.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 template<typename T> class A{ private: T n; public: A(T a):n(a){}; T* createPointer(){ return &n; } };
Comment créer proprement les méthodes d'une classe template en dehors de celle-ci?
Merci de votre aide.
Partager