Définition de méthodes pour une classe template
Salut!:D
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:
Code:
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;
} |
Le compilo, g++ avec DevC++, me renvoie:
Code:
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 |
venant du fait qu'il ne comprend pas ce T qui en dehors de la classe n'a pas de signification.
Sinon tout est bon:
Code:
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;
}
}; |
marche sans problème.
Comment créer proprement les méthodes d'une classe template en dehors de celle-ci?
Merci de votre aide.