Bien le bonjour Moi j'ai un probleme avec mes Template J'ai crée une classe Vecteur qui est sensé est compatible avec tout les type mais elle pose problème je ne sais pas trop pourquoi voici mon code Voila le probleme n'est pas lors de la compilation mais plutot lors d'une instanciation par exemple avec une structure Index que voici : Merci

struct Index
{
int Cle;
bool Actif;
};

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
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
 
void main()
{
     //     Erreur
     cVecteur<Index> VecteurIndex(50); // Vecteur de Type Index de 50 Place
     //     Erreur
     cVecteur<int> VecteurInt(50); // Vecteur d'entier de 50 Place
}
 
// cVecteur.h
#pragma once
#include <stdlib.h>
 
template <typename Type>
class cVecteur
{
	private:
		static const int LimitePhys = 100;
		Type V[100];
		int LL;
	public:
		cVecteur(int);
		~cVecteur();
		void Vider_LL();
		bool Ajouter(Type);
		void Retirer();
		void RetirerSelonPos(int);
		int Recherche(int Valeur);
};
 
// cVecteur.cpp
 
//	Classe Vecteur
#include "cVecteur.h"
 
//	Constructeur
template <typename Type>
cVecteur<Type>::cVecteur(int Limite)
{
 
	LL = Limite;
}
 
//	Destructeur
template <typename Type>
cVecteur<Type>::~cVecteur()
{
}
 
//	Vide le vecteurlogiquement
template <typename Type>
void cVecteur<Type>::Vider_LL()
{
	LL = 0;
}
 
//	Ajoute une valeur à l'extreme droite
template <typename Type>
bool cVecteur<Type>::Ajouter(Type Valeur){
	bool Temoin;
 
	if (LL+1 < LimitePhys){
		LL++;
		V[LL] = Valeur;
		Temoin = true;
	}
	return Temoin;
}
 
//	Retire une valeur
template <typename Type>
void cVecteur<Type>::Retirer()
{
	LL--;
}
 
//	Recherche une valeur
template <typename Type>
int cVecteur<Type>::Recherche(int Valeur)
{
	int Pos = -1;
	for (int i = 0; i <= LL; i++)
		{
			if (V[i] == Valeur)
				{
					Pos = i;
				}
		}
	return Pos;
}
 
//	Retire une valeur selon une position
template <typename Type>
void cVecteur<Type>::RetirerSelonPos(int Pos)
{
	for (int i = Pos; i < LL; i++)
		{
			V[i] = V[i+1];
		}
	LL--;
}