Tu n'as pas l'impression de faire compliqué là où il serait si simple de faire
Parce que là, tu commence à rajouter des points qui sont sensés t'aider à te dépétrer d'un problème qui n'aurais jamais du exister, mais qui, en réalité, ne font que t'enfoncer dans ta m...e
Einstien a dit[QUOTE = einstein]Il faut rendre les choses aussi complexes que possible, mais sans plus![/QUOTE]
Alors, pour répondre à ta question : oui, il est possible, à partir du moment où une classe dispose d'un pointeur ou d'une référence (non constante) vers une donnée de faire en sorte qu'une fonction membre de cette classe aille modifier la valeur de la donnée pointée / référencée.
Mais le fait que le langage accepte quelque chose ne veut pas forcément dire qu'il soit opportun de profiter de cette possibilité!
Et, en l'occurrence, il est très rarement opportun de faire en sorte qu'une donnée soit modifiée par les fonctions d'une classe qui n'est pas responsable de la donnée.
Cela occasionne ce que l'on appelle un "effet de bord", et, par nature, les effets de bords provoquent bien plus de problèmes que ce qu'ils ne permettent de résoudre
NOTA : il arrive, car rien n'est jamais simple, en programmation, que l'on n'ait pas vraiment le choix, et qu'il faille -- parfois -- se résoudre à occasionner un effet de bord. Mais cette solution ne devrait être envisagée qu'en toute dernière extrémité, quand toutes les autres solutions envisageables ont été écartées pour des raisons valables.
Partager