Salut les amis!
j'ai un problème de compilation sous code::Blocks ,il me génère l'erreur suivante au niveau du main:
undefined reference to 'liste <int>::liste(int)'
mon code est le suivant:
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 //fichier liste.h #ifndef LISTE_H_INCLUDED #define LISTE_H_INCLUDED template <class T> class liste{ protected://prevoir un heritage;sinon la classe fille n'a pas acces aux membres,donnees prives de la classe mere int taille; int NbrElements;//contient le nbre actuel d'elements que contient la liste int courant;//indique la position de l'element courant T *adr; public: liste(int); liste(liste &f); ~liste (); void saisie(); void affiche(); liste &oppose(); }; #endif // LISTE_H_INCLUDED
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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71 //fichier liste.cpp #include "liste.h" #include <iostream.h> template <class T> liste<T>::liste(int n=20){ taille=n; adr=new T[taille]; NbrElements=0; courant=0; cout<<"constructiom d'un objet liste dont @ "<<this<<"\n"; cout<<"adresse du pointeur adr de liste "<<adr<<"\n"; } template <class T> liste<T>::liste(liste &f){ cout<<"constructeur par recopie"; taille=f.taille; adr=new T[taille]; for(int i=0;i < taille;i++){ adr[i]=f.adr[i];//construction par recopie } } template <class T> liste<T>:: ~liste() { delete adr; cout<<"destruction de l'objet liste dont @ "<<this<<"\n"; cout<<"adresse de liste"<<adr<<"\n"; } template <class T> void liste<T>::saisie(){ for(int i=0;i<taille;i++){ cout<<"entrer un nombre dans la liste \n"; cin>>*(adr+i); } cout<<"la liste contient les nombres suivants:"; for(int i=0;i<taille;i++) { cout<<"le nombre d'@ "<<adr+i<<" est egal a "<<*(adr+i); } } template <class T> liste &liste liste<T> :: oppose() { //LE RETOUR PAR REFERENCE SINON L'OBJET LOCAL CREE EST DETRUIT AVANT D'ETRE UTILISE static liste res(taille); cout<<"construction de la liste opposee \n"; for(int i=0;i< taille;i++) { res.adr[i]=-adr[i]; cout<<"\n la valeur de i dans la boucle for de construction "<<i; } for(int i=0;i<taille;i++) { cout<<"\n le contenu des listes opposées: "<<*(adr+i)<<" "<<*(res.adr +i)<<"\n"; } return res; }je ne sais pas d'ou vient le probleme!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 //fichier main #include "liste.h" #include <iostream> using namespace std; int main() { liste<int> a(2); return 0; }
Merci d'avance les amis!
Partager