 |
C++Talk.NET C++ language newsgroups
|
| View previous topic :: View next topic |
| Author |
Message |
Nicolas Aunai Guest
|
Posted: Fri Jan 16, 2004 6:24 pm Post subject: surcharge *= et << |
|
|
salut,
je suis en train de faire une classe Matrice, et, après avoir surchargé
l'opérateur '*=', (qui renvoit *this), ainsi que l'opérateur de flux de
sortie '<<' j'aimerai rendre la chose suivante possible :
Matrice m(3,3,3); //lignes, colones, valeur
Matrice m1(3,3,4);
cout << m*=m4;
ça ne marche pas je ne comprends pas pourquoi, étant donné que mon
opérateur '*=' renvoit une référence vers mon objet 'm' après le
changement, et que ma surcharge de '<<' fonctionne correctement si je
fais :
cout << m;
qui a une explication ?
--
Nico,
http://astrosurf.com/nicoastro
messenger : [email]nicolas_aunai (AT) hotmail (DOT) com[/email]
|
|
| Back to top |
|
 |
Guillaume LEMAÎTRE Guest
|
Posted: Fri Jan 16, 2004 7:47 pm Post subject: Re: surcharge *= et << |
|
|
Nicolas Aunai wrote:
| Quote: | salut,
cout << m*=m4;
|
tout est question de priorité d'évaluation entre opérateurs.
pour que ça marche il faut écrire
cout << ( m *= m4 );
|
|
| Back to top |
|
 |
Loïc Joly Guest
|
Posted: Fri Jan 16, 2004 7:59 pm Post subject: Re: surcharge *= et << |
|
|
Nicolas Aunai wrote:
| Quote: | salut,
je suis en train de faire une classe Matrice, et, après avoir surchargé
l'opérateur '*=', (qui renvoit *this), ainsi que l'opérateur de flux de
sortie '<<' j'aimerai rendre la chose suivante possible :
Matrice m(3,3,3); //lignes, colones, valeur
Matrice m1(3,3,4);
cout << m*=m4;
ça ne marche pas je ne comprends pas pourquoi, étant donné que mon
opérateur '*=' renvoit une référence vers mon objet 'm' après le
changement, et que ma surcharge de '<<' fonctionne correctement si je
fais :
cout << m;
qui a une explication ?
L'opérateur << est plus prioritaire que l'opérateur *= |
Ce qui te semblerait logique dans l'expression :
unsigned int a=42;
unsigned int b=314;
a *= b << 2;
--
Loïc
|
|
| Back to top |
|
 |
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|