Bonjour,

voici la partie de mon code où j'ai un petit soucis :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
template<class T, const int N>
class CVecteur
{
	private:
			int size;
			T data[N];
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
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 ;-)