Bonjour,
Je cherche à implémenter une Liste patron (dans un but didactique, sinon, j'aurais pris la STL) afin qu'elle soit la plus réutilisable possible.
Cependant, j'ai un petit problème. Tout d'abord la déclaration de la classe (ce n'est encore qu'une ébauche) :
Code :
- template <class T> struct Element
- {
- struct Element* m_Next;
- T m_Data;
- };
- template <class T> class List
- {
- private:
- struct Element<T>* m_First;
- public:
- List();
- virtual ~List();
- void empty();
- void add(T);
- friend ostream& operator<< (ostream&,const List<class T>& );
- };
|
et le code incriminé:
Code :
- void template <class T> List<T>::add(T t)
- {
- struct Element<T>* e = new struct Element<T>;
- e->m_Next = m_First;
- e->m_Data = t;
- m_First = e;
- }
|
Dans ma fonction main, j'essaye d'instancier une liste de int, mais à chaque fois que je déclare une struct Element<T>* e, C++ Builder 4 me renvoie l'erreur : "La spécialisation explicite de Element<int> nécessite une déclaration template<>".
Si quelqu'un pouvait m'aider, ce serait vraiment sympa, parce que là, les templates, c'est la première fois que j'en utilise vraiment et je ne vois pas trop ce que signifie cette erreur... Merci!
Message édité par maximew le 01-02-2005 à 17:12:05
---------------
Mon Flickr