expression infixée -> postfixée [C++] - C++ - Programmation
Marsh Posté le 29-10-2004 à 21:23:56
je suis pas clair? jsais pas trop quoi ajouté, mais si vous comprenez pas une partie de mon problème, dites le, jvais tenter de clarifier
Marsh Posté le 29-10-2004 à 22:02:42
Eh oh, c'est pas un tchat ici
On a le droit de faire ses courses, prendre une douche, manger, etc. non ?
Bon, pour ton problème. Je pense que ton prof ne voulait pas que tu copies le contenu de l'objet file, plutôt que l'objet lui-même (qui risque de faire une shallow-copy plutôt qu'une deep copy).
J'extrapole:
Code :
|
Marsh Posté le 29-10-2004 à 22:06:55
je voulais pas pousser pour une réponse, mais jai eu de la difficulté à poser ma question alors j'ai cru qu'elle avait été mal comprise après quelques read du topic
sinon pour ton code, jcrois qu'on est pas rendu à ce niveau encore
Marsh Posté le 29-10-2004 à 22:50:17
en gros dans ma fonction infVersPost()
j'ai placé ca:
Code :
|
et ca m'affiche:
|
je me doute que c'est surement quelque chose de con que je n'ai pas compris, mais je vois pas quoi
Marsh Posté le 29-10-2004 à 23:03:24
Tu n'as pas d'opérateur d'affectation, et comme inf est une expression (et non une référence sur expression), bah l'objet est vide.
Donc soit tu transforme inf en référence ou pointeur, soit tu écrit un constructeur de recopie et tu surcharges l'opérateur d'affectation pour y mettre ton biniou.
Marsh Posté le 29-10-2004 à 23:13:50
Lam's a écrit : Tu n'as pas d'opérateur d'affectation, et comme inf est une expression (et non une référence sur expression), bah l'objet est vide. |
justement, l'opérateur d'affectation il fera quoi? il devra copier la file de mon objet (rep) dans mon objet inf
ca l'implique donc de surcharger l'opérateur d'affectation de la file, et le prof semble dire qu'il faut pas
et je peux pas avoir inf comme référence ou comme pointeur, car la conversion inf->post me demande de défiler la file
Marsh Posté le 29-10-2004 à 23:20:11
Bah oui, il faut pas faire, il a dit ton prof Mais je pensais que tu voulais vraiment pouvoir faire ceci=cela;
Regarde comment j'ai fait dans le code que j'ai mis. Je pense que c'est un bon début.
Marsh Posté le 30-10-2004 à 00:24:35
Lam's a écrit : Bah oui, il faut pas faire, il a dit ton prof Mais je pensais que tu voulais vraiment pouvoir faire ceci=cela; |
jvois pas
trop de truc que je connais pas ou que j'ai pratiquement jamais utilisé
edit: jviens d'envoyer un mail au prof pour qu'il tente de m'éclairer sur: comment copier une expression sans faire une copie de sa représentation
Marsh Posté le 30-10-2004 à 00:43:40
et le destructeur virtuel, ça te troue le cul ?
typedef std::vector<Expression> File;
--> manque une *
Marsh Posté le 29-10-2004 à 20:56:16
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!"
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