j'ai une expression, représenté par une file de symbole nommé rep (pour représentation)
dans ma classe expression, j'ai une méthode infVersPost, qui doit me retourner une expression, mais en postfixé (2 + 2 devient 2 2 +)
le traitement fonctionne plutot bien, je l'avais testé en déclarant la fonction en void et en remplacant l'expression appelante par celle postfixé
mais là j'en arrache pour retourner une expression, en gros je me fis sur un courriel du prof
"On peut alors créer dans la fonction la version postfixée et la retourner par valeur. Évidemment, il faudra faire un copieur d'expression. Il n'y a pas lieu de faire un copieur de file, car une file est un conteneur, mais c'est très bien de faire un copieur d'expression, car une expression est un scalaire!"
Code :
- Expression Expression::infVersPost()const{
- Expression inf,post;
- inf=*this; //on prend une copie du paramètre implicite
- ...
- return post; //on retourne par valeur le résultat
- }
|
voila que inf est considéré comme une file vide
je me doute que c'est parce que je n'ai pas de copieur pour ma classe expression, mais jsais pas trop quoi y placer, en sachant que je dois copier "l'expression" mais pas la file, j'comprends pas vraiment