Probleme template de classe c++
Résolu
jacinthe87
Messages postés
204
Statut
Membre
-
ty -
ty -
Bonjour,
j'ai crée une classe "Tableau" avec un constructeur avec et sans argument, lorsque j'appel un constructeur dans main , il m'affiche cet erreur:
voila mon fichier:
dans main:
merci pour votre aide!!
--
The best way to escape from a problem is to solve it.
j'ai crée une classe "Tableau" avec un constructeur avec et sans argument, lorsque j'appel un constructeur dans main , il m'affiche cet erreur:
[Linker error] undefined reference to `Tableau<int>::Tableau(int)'
voila mon fichier:
#include <cstdlib>
#include <iostream>
using namespace std;
template <class T>
class Tableau{
protected:
T *tab;
int dim;
public:
Tableau();
Tableau(int);
void affiche();
};
template <class T>
Tableau<T>::Tableau(){
dim=0;
tab=NULL;
}
template <class T>
Tableau<T>::Tableau(int n):dim(n){
tab=new T[dim];
}
template <class T>
void Tableau<T>::affiche(){
for(int i=0;i<dim;i++){
cout<<tab[i]<<endl;
}
}
dans main:
#include <cstdlib>
#include <iostream>
#include "tableau.h"
using namespace std;
int main(int argc, char *argv[])
{
Tableau<int> t(2);
system("PAUSE");
return EXIT_SUCCESS;
}
merci pour votre aide!!
--
The best way to escape from a problem is to solve it.
Configuration: Windows XP Safari 530.5
4 réponses
-
Je suppose que 'tableau;h' est le fichier donné au dessus.
Si c'est le cas et si c'est bien le fichier inclus, je ne vois pas d'où peut provenir cette erreur.
Par contre il y a une 'petite' anomalie: new sans delete ! -
voila j'ai ajouté un destructeur mais toujours le meme probleme:
#include <cstdlib> #include <iostream> using namespace std; template <class T> class Tableau{ protected: T *tab; int dim; public: Tableau(); Tableau(int); void affiche(); ~Tableau(); }; template <class T> Tableau<T>::Tableau(){ dim=0; tab=NULL; } template <class T> Tableau<T>::Tableau(int n):dim(n){ tab=new T[dim]; } template <class T> void Tableau<T>::affiche(){ for(int i=0;i<dim;i++){ cout<<tab[i]<<endl; } } template <class T> Tableau<T>::~Tableau(){ delete tab; }
SVP j'ai besoin de votre aide!
-
ça marche!!
donc le probleme vient du fichier .cpp ?!
Merci -