template class et conversion
Bonjour,
voici la partie de mon code où j'ai un petit soucis :
Code:
1 2 3 4 5 6
| template<class T, const int N>
class CVecteur
{
private:
int size;
T data[N]; |
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| template<class T, const int N>
CVecteur<T,N> :: CVecteur()
{
size = 0;
T valeur = NULL;
cout<<"\nCREATION DE L'OBJET\nEntrer -1 pour arreter de remplir le tableau\n";
while ((valeur != -1)&&(size < N))
{
cout <<"Nombre ? ";
cin>>valeur;
if (valeur!=-1)
{
data[size]=valeur;
cout <<"data[" <<size<<"] = "<< data[size] << endl;
size++;
}
}
} |
Dans ce constructeur de class, je remplie une tableau de type T et de taille maxi N. L'utilisateur entre des valeurs, et lorsqu'il entre -1 le remplissage du tableau s'arrête. Jusque là je pense avoir réalisé le travail demandé.
Lorsque T est un int par exemple, aucun problème. Par contre, j'ai essayé avec T = char et là, soucis : lorsque je rentre -1 pour arrêter de remplir le tableau, le caractère - va dans une case et 1 dans la suivante, et la condition (valeur!=-1) est considéré comme fausse...
Je viens donc vers vous pour vous demander un moyen de contourner ce soucis...
Comme d'habitude, toutes remarques sont les biens venues ;-)