Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1148 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  je veux qu'un op binaire soit evalué de droite a gauche (comment ?)

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

je veux qu'un op binaire soit evalué de droite a gauche (comment ?)

n°294996
karim63
Posté le 27-01-2003 à 19:21:41  profilanswer
 

Code :
  1. l<<new entier(55)<<new entier(666);
  2. new entier(95887)>>(new entier(765)>>l);


 
voilà j veux faire ceci la premiere ligne ajoute des entier en fin de liste l et la seconde ajoute au debut.
Sauf que vous voyez bien que j'ai du rajouter des parentheses car sinon il veut po et croit que je veux enfiler deux entier* .
Je sais qu'en prolog on peut changer le sens d'evaluation, mais en c++ je sais pas.
Je voudrais que ça evalue de la droite vers la gauche.
 

Code :
  1. l>>new entier(95887)>>new entier(765);


 
Sinon faudrait que je fasse ça mais c tout nul et en plus ça enfile pas les elements dans le bon ordre.  :sweat:  
 
Une idée me vient à l'instant ça serait la recursivité , mais je vois pas trop  :heink:

mood
Publicité
Posté le 27-01-2003 à 19:21:41  profilanswer
 

n°295003
karim63
Posté le 27-01-2003 à 19:28:52  profilanswer
 

une autre solution que je vois serait de re-surcharger le membre de gauche de >> de tel façon a ce qu'il prenne en parametre une fonction (type*,  ... hem ...  :pt1cable:  
benh ça risque de pas etre posssible comme ça en fait [:ddr555]

n°295004
LetoII
Le dormeur doit se réveiller
Posté le 27-01-2003 à 19:30:35  profilanswer
 

Je pense pas que tu puisse changer ça. Les priorité des opérateurs et leur sens d'évaluation me semble plutôt immuable. Enfin je peux me tromper.


---------------
Le Tyran
n°295007
karim63
Posté le 27-01-2003 à 19:35:54  profilanswer
 

je tient a preciser que je surcharge << et >> avec deux membre, et que ce n'est donc pas une methode membre d'un objet.
J'ai lu aussi que pour l'operateur++ afin de le mettre en post fixé i++ par exemple, il faut faire ceci : operator++(int)
au lieu de operator++() tout cours pour le prefixé.
Peut etre est ce une voie a explorer.

n°295009
schnapsman​n
Zaford Beeblefect
Posté le 27-01-2003 à 19:40:23  profilanswer
 

LetoII a écrit :

Je pense pas que tu puisse changer ça. Les priorité des opérateurs et leur sens d'évaluation me semble plutôt immuable. Enfin je peux me tromper.


 
en affet l'associativité des opérateurs ainsi que leur priorité est immuable dans le c++ :
 
http://www-agrw.informatik.uni-kl. [...] dence.html


---------------
From now on, you will speak only when spoken to, and the first and last words out of your filthy sewers will be "Sir!"
n°295010
LetoII
Le dormeur doit se réveiller
Posté le 27-01-2003 à 19:41:37  profilanswer
 

nan, les opérateur de post/pré incrémentation/décrémenttion sont un cas à part. En ce qui concerne ton pb j'ai jamais rien vu qui permete de changer les sens d'évaluation ou les priorité d'opérateurs. Ce qui ne veut pas dire que ça n'existe pas.
 
Ce serait bien que tu passe les proto de tes opérateurs.


---------------
Le Tyran
n°295015
Kristoph
Posté le 27-01-2003 à 19:49:14  profilanswer
 

Arg ! Deja, vouloir donner aux opérateurs un sens qu'ils n'ont pas c'est mal. Changer leur priorité ou leur sens d'évalutation !!!
 
Z'ètes fous, vous trouvez pas que le C++ est déjà assez lent à compiler et assez compliqué comme ça ?

n°295023
karim63
Posté le 27-01-2003 à 20:00:28  profilanswer
 

Code :
  1. template<class T> Plist<T>& operator>>(T* Pobj,Plist<T>& l)
  2. {
  3.   l.add(Pobj);
  4.   return l;
  5. };
  6. template<class T> Plist<T>& operator<<(Plist<T>& l,T* Pobj)
  7. {
  8.   l.adde(Pobj);
  9.   return l;
  10. };

n°295025
LetoII
Le dormeur doit se réveiller
Posté le 27-01-2003 à 20:02:33  profilanswer
 

Kristoph a écrit :

Arg ! Deja, vouloir donner aux opérateurs un sens qu'ils n'ont pas c'est mal. Changer leur priorité ou leur sens d'évalutation !!!
 
Z'ètes fous, vous trouvez pas que le C++ est déjà assez lent à compiler et assez compliqué comme ça ?


 
Perso c juste pour ma culture perso. Ca me viendrait pas à l'idée de modifier ça dans un prog.


---------------
Le Tyran
n°295027
karim63
Posté le 27-01-2003 à 20:05:04  profilanswer
 

je viens de penser que je pourrais munir les objets a inserer de la methode  Plist<T>& operator>>(Plist<T> &l), mais il faudrait dans ce cas que je face ceci:
 

Code :
  1. Plist<T>& operator>>(Plist<T> &l)
  2. {
  3.    l.add(this->clone());
  4.    return l;
  5. };
  6. //et la pouvoir faire
  7. entier(666)>>entier(554)>>l;


 
[:ddr555]
 
 :pt1cable:

mood
Publicité
Posté le 27-01-2003 à 20:05:04  profilanswer
 

n°295028
karim63
Posté le 27-01-2003 à 20:10:29  profilanswer
 

Kristoph a écrit :

Arg ! Deja, vouloir donner aux opérateurs un sens qu'ils n'ont pas c'est mal. Changer leur priorité ou leur sens d'évalutation !!!
 
Z'ètes fous, vous trouvez pas que le C++ est déjà assez lent à compiler et assez compliqué comme ça ?


 
Nan m'en fou.
C'est une grosse lacune du c++ de pas pouvoir definir des operateurs existant pas. ( c moi qui le dit :D )

n°295030
LetoII
Le dormeur doit se réveiller
Posté le 27-01-2003 à 20:10:49  profilanswer
 

karim63 a écrit :

je viens de penser que je pourrais munir les objets a inserer de la methode  Plist<T>& operator>>(Plist<T> &l), mais il faudrait dans ce cas que je face ceci:
 

Code :
  1. Plist<T>& operator>>(Plist<T> &l)
  2. {
  3.    l.add(this->clone());
  4.    return l;
  5. };
  6. //et la pouvoir faire
  7. entier(666)>>entier(554)>>l;


 
[:ddr555]
 
 :pt1cable:  


 
Je veux pas faire chier, mais ça me semble pas changer le sens d'évaluation


---------------
Le Tyran
n°295041
karim63
Posté le 27-01-2003 à 20:36:17  profilanswer
 

LetoII a écrit :


 
Je veux pas faire chier, mais ça me semble pas changer le sens d'évaluation


 
 
mmm correct !
[:ddr555]

n°295047
LetoII
Le dormeur doit se réveiller
Posté le 27-01-2003 à 20:48:41  profilanswer
 

karim63 a écrit :


 
 
mmm correct !
[:ddr555]


 
arf [:ddr555]


---------------
Le Tyran
n°295071
Angel_Eyes
Wait & see...
Posté le 27-01-2003 à 21:41:06  profilanswer
 

je trouve cette idée malsaine :)


---------------
Angel Eyes, j'en raffole tous les matins... :pt1cable:  
n°295077
Angel_Eyes
Wait & see...
Posté le 27-01-2003 à 21:48:22  profilanswer
 

que je sache, si on a deux opérateurs identiques, c'est celui de gauche qui est prioritaire... je doute que tu arrives à tes fins
 
Mais pourquoi vouloir a >> b >> c au lieu de c << b << a ??
 
Remarque, je vois bien un moyen par création d'une classe équivalente à un entier que tu pourrais enfiller, mais il faut que ton enfillade soit commutative => on ne change pas l'interprétation de gauche à droite. Pour aller vite, je crois que tu peux faire un héritage sur le type entier, mais ça dépend peut-être du compilo.


---------------
Angel Eyes, j'en raffole tous les matins... :pt1cable:  
n°295086
karim63
Posté le 27-01-2003 à 21:57:05  profilanswer
 

Code :
  1. template<class T> Plist<T>& operator>>=(T* Pobj,Plist<T>& l)
  2. {
  3.   l.add(Pobj);
  4.   return l;
  5. };


 
J'ai resolu le probleme [:zerod]
Avec cet operateur qui est en bas de cette page, ça marche http://www-agrw.informatik.uni-kl. [...] dence.html
 
benh je voulait juste un operateur pour ajouter en queue ou en tete.
Merci SchnapsMann  :D

n°295215
Musaran
Cerveaulté
Posté le 28-01-2003 à 06:48:48  profilanswer
 

karim63 a écrit :

C'est une grosse lacune du c++ de pas pouvoir definir des operateurs existant pas. ( c moi qui le dit :D )

Ça arrive.


---------------
Bricocheap: Montage de ventilo sur paté de mastic silicone

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  je veux qu'un op binaire soit evalué de droite a gauche (comment ?)

 

Sujets relatifs
[JAVA] Je veux lire une animation (gif animé, flash ....) [résolu][ASP_newbies]Probleme lorsque je veux acceder a ma base de donnée!
Comment fixer un calque en bas a gauche de l'ecran ?arbre naire en arbre binaire
Décalage binaire, cho cho cho ![XHTML] Aligner du texte à gauche dans un tableau
[HTML, JS] Avoir une image fixe à droite d'un tableau,qui lui,scrolle?besoin d'aide sur arbre binaire
Code qui permet de virer la barre d'ascenseur à droite inutile. OKArbre Binaire Ordonné, Insertion d'un élément et complexié ?
Plus de sujets relatifs à : je veux qu'un op binaire soit evalué de droite a gauche (comment ?)


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR