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 codeVoila 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--; }
Partager