Si je comprends bien, c´est ton test IsEmpty() qui n´est pas fiable ?
Bon tout d´abord une grosse critique :
Ton code est tres lourd, parce que tu mets " this" a chaque fois ! !
Enleve moi tous ces this !
tu as le droit, dans une méthode, de parler de la variable " next" et non de " this->next"
implicitement, il prendra le next de l´instance courante ( donc de " this" instance)
Ensuite, peut etre une piste, le true,false, et bool ne sont pas normalisés dans tous les langages, pour ma part, je prefere renvoyer un int à 0 ou 1...
Mais c´est un choix.
Ensuite, sémantiquement, ta méthode IsEmpty() renvoie vrai si il n´y a pas de suivant ?
C´est a dire que si ta liste est composé d´un seul élément, donc n´a pas de next, elle renvoie que c´est vide...
ça peut etre genant.
Ensuite, bon, le
T t;
puis le
return t;
derriere, en tant que programmeur C, je te mettrais un warning : uninitialised.
Si tu fais une STACK<int> tu ne peux pas prévoir le retour...
si tu veux renvoyer l´élément par défaut - meme si ça revient surement au meme - il est plus propre d´écrire :
T t();
Bon comme tu vois, c´est pas forcément la réponse que tu voulais, le meiux serait de poser un point d´arret sur le if, et de débugguer a ce niveau la.