Bonjour,
J'ai plusieurs questions a vous posez.Tout d'abord je voudrai savoir la différence entre template<typename T> et template<classT> (dans quel cas est-il préférable d'utilisé l'un que l'autre ?)
J'ai un sousci de compilation:
Alors que tout est ok au niveau du code:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 main.cpp:(.text+0x40): undefined reference to `Vecteur<int>::operator[](int)' main.cpp:(.text+0x77): undefined reference to `Vecteur<int>::operator[](int)'
Vecteur.hxx
Vecteur.cpp
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 #include <iostream> #include<cstring> #include<cstdlib> using namespace std; template<class T=int> class Vecteur{ private: int taille; T *tab; public: Vecteur(int t){ if(t<=0) exit(0); else{ taille=t; tab= new T[taille]; } } T& operator[](int ); Vecteur & operator=(const Vecteur &v); };
Main.cpp
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 #include "Vecteur.hxx" template<class T> T& Vecteur<T>::operator[](int i){ if(i<0||i>=taille) exit(0); return tab[i]; } template<class T> Vecteur<T> & Vecteur<T>::operator=(const Vecteur & vcopie){ int i=0; if(this!=&vcopie){ if(vcopie.taille==0) exit(0); taille=vcopie.taille; tab=new T[taille]; for(i=0;i<taille;i++) tab[i]=vcopie[i]; } return *this; }
Merci d'avance
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 #include "Vecteur.hxx" using namespace std; int main(){ int i=0; Vecteur<int> V(10); for(i=0;i<10;i++){ V[i]=2*i; } for(i=0;i<10;i++) cout<< "Compteur: "<<V[i]<<endl; return 0; }
Partager