classe template separe en fichier header et cpp
salut tout le monde
je suis débutant en c++, et je veux créer une classe template :
voila mon code :
Vecteur.h
Code:
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
|
#ifndef VECTEUR
#define VECTEUR
template<class T>
class Vecteur {
private :
T *m_table;
int m_taille;
public :
//constructeur par defaut :
Vecteur():m_table(NULL),m_taille(0){
}
//constructeurs avec parametres :
Vecteur(T *table,int taille):m_taille(taille){
m_table=new T[taille];
for(int i=0;i<taille;i++)
{
m_table[i]=table[i];
}
}
//destructeur :
~Vecteur();
void Vecteur::affiche(){
for(int i=0;i<this->m_taille;i++)
{
std::cout<<m_table[i]<<" ";
}
}
};
#endif |
main.cpp
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
|
#include <iostream>
#include"Vecteur.h"
using namespace std;
int main()
{
int *table=new int[10];
for(int i=0;i<10;i++)
{
table[i]=i+1;
}
Vecteur <int>h(table,10);
h.affiche();
return 0;
} |
un petit erreur qui s'affiche :
templateclasse\main.cpp|16|undefined reference to `Vecteur<int>::~Vecteur()'|
et si vous pouvez me dire comment je peux sépare la déclaration et l'implémentation en deux fichiers .h et .cpp parce que lorsque je crée deux fichiers .h et .cpp le compilateur me génère des erreurs a cause de l'utilisation des templates .
merci d'avance.