Problème la surcharge ou le retour de référence vers un template
Bonjour,
J'ai le code suivant, avec les erreurs mises en commentaires plus visibles :
Code:
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
| template <class T> //contained type
class stack { //base of container
//...
public:
stack(); //default constructor
stack(T); //best constructor(with a data)
~stack(); //destructor
int size() {return num;} //get stack size
int push_back(T); //add at end
int push_front(T); //add at start
int push_in(T,int); //add in
&T get_back(); //get last element
//////////////////////////////////////////////////////////////////
//erreur de syntaxe : absence de ';' avant l'identificateur 'get_back'
//pécificateur de type manquant - int est pris en compte par défaut. Remarque : C++ ne prend pas en charge int par défaut
//idem que la précedente
//AVERTISSEMENT: 'get_back' : type de retour manquant ; fonction membre retournant 'int' prise par défaut
//////////////////////////////////////////////////////////////////
&T get_front(); //get first element
//////////////////////////////////////////////////////////////////
//Les mêmes erreurs que pour get_back
//////////////////////////////////////////////////////////////////
//...
};
&T stack::get_back(int n) { //get n-th element before end
if (n>num) {
erreur error;
error.msg="Out of range"
error.errornum=2;
throw (error);
}
contain *ptr;
ptr=dernier;
for (int i=0;i<n;i++)
ptr=ptr-precedent;
return &ptr;
}
&T stack::get_front(int n) {//get n-th element next start
if (n>num) {
erreur error;
error.msg="Out of range";
error.errornum=2;
throw (error);
}
contain *ptr;
ptr=premier;
for (int i=0;i<n;i++)
ptr=ptr->suivant;
return &ptr;
} |
Note: bien que les commentaires soient en Anglais, c'est bien moi qui les ai mis et qui ai fait le programme.
Merci d'avance,
ProgVal