![Citation](https://forum.developpez.be/images/misc/quote_icon.png)
Envoyé par
akirira
Pfuiih, 3h34, et tu pète encore le feu, bravo ! ;-)
OUI ! J'ai parfaitement compris, et en plus, je suis d'accord avec toi : je change les valeurs, d'un strict point de vue "bit" !!!
Mais (comme je l'ai déjà dit), NON, la "valeur" de l'objet ne change pas (mais tu avais compris...)
C'est sur ce point précis que nous divergeons: les valeurs de ce type de matrices prises individuellement ne représentent rien, et sont même inexploitables.
Pour faire une analogie, imagine une classe de nombre rationnels, qui mémorise les valeurs avec 2 int: le rationnel 2/18 est exactement le même que le rationnel 1/9, et, en les comparant, on devra obtenir une égalité. Les valeurs 1,2,9,18, prisent isolément n'ont aucune signification !!!
Si je multiplie les deux ints par 2, je ne change pas la valeur du rationnel (et donc je suis "const").
Heuuh non, merci, de ce coté, ça va....
Mais c'est effectivement le point clé (d'ailleurs, dans la littérature, on dit plutôt "congruence", ce qui signifie, dans le contexte considéré, "égalité à un facteur près": l'égalité "pure", on s'en fout !
Donc voilà, peut-être touchons nous un point clé du C++: il ne permet pas de définir un opérateur définissant ce qu'est une "modification", il ne connait que le bas niveau: si j'écris dans un octet, pour lui, je modifie l'objet, alors que sémantiquement, ce n'est pas forcement vrai: si je multiplie ma fraction 1/9 par 2, l'objet "rationnel" reste constant.
Partager