salut a tous ,je suis en train d'ecrire un prog qui utilise un stack dynamique parametrique(class template) .lorsque j'essay d'utiliser la fonction push qui inserre un element le compilateur releve l'erreur:
instantiated from `stack::push(int)'
template <typename T>
void
stack::push(T value){
if(top==capacity){
T *loc_pointer=newcopy(pointer,capacity,capacity*2);
capacity=capacity*2;
top++;
try{
loc_pointer[top++]=value;
delete []pointer;
pointer=loc_pointer;
}
catch(...){
delete []loc_pointer;
capacity=capacity/2;
top--;
throw;}
}
else {
top++;
pointer[top++]=value;
}
}
je voudrais savoir c'est quoi au juste cet erreur?
en attendant une reponse je vous remerci
# c'est pas la bonne ligne
Posté par Matthieu Moy (site web personnel) . Évalué à 2.
(au fait, tu sais que la classe que tu écris ressemble très fort a std::vector ?)
[^] # Re: c'est pas la bonne ligne
Posté par stella . Évalué à 1.
le probleme est quand j'utilise cette fonction ds le main .
je sais que :instantiate veut dire que le compilateur realise une version de la classe templatique relativement a un type precis ,mais je sais pas comment corriger l'erreur?
doi-je specifier lors de la declaration des objets stack le mot clè :template ????
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.