Je suis entrain d'essayer de creer une liste generique, mais j'ai quelques pb avec les templates.
Voila la classe:
Le source qui va avec :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 #ifndef HEADER_LIST #define HEADER_LIST #include <iostream> using namespace std; // Classe liste template <class T> class List { private: T m_val; List<T> *m_next; public: List() ; List(const List<T>&) ; ~List(); void addTail(T); }...
Le main
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37 #include "list.h" //Methods canonic Copelian Form template <class T> List<T>::List(){ m_next = NULL; } template <class T> List<T>::List(const List &l){ if (l.m_next == NULL) m_next = NULL; else{ while (l.m_next != NULL){ addTail(l.m_val); } } } template <class T> List<T>::~List(){ if (m_next != NULL) delete m_next; } template <class T> void List<T>::addTail(T element){ List<T> *newElem = new List; newElem->m_next; newElem->m_val = element; m_next = newElem; }
et a la compilation :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 #include "list.h" int main(){ List<int> my_list; my_list.addTail(2); //my_list.addTail(1); return 0; }
main.cpp.text+0x195): undefined reference to `List<int>::List()'
main.cpp.text+0x1a8): undefined reference to `List<int>::addTail(int)'
main.cpp.text+0x1b8): undefined reference to `List<int>::~List()'
main.cpp.text+0x1ce): undefined reference to `List<int>::~List()'
c'est la premiere fois que j'utilise les templates alors... J'aurais besoin d'aide
Merci d'avance
Partager