perso j'en vois pas trop si ce n'est faire des choses comme ma_fonction()=3.
??? non serieux ca sert bcp
Je pense que c'est censé être dans "Prog C++ PC"...
Pour répondre à ta question si c'est bien du C++, oui ça sert : tu peux choisir, par exemple, d'utiliser autant de références que possible dans ton prog et d'éviter les pointeurs. Les références te donnent à la fois la certitude que l'adresse de l'objet ne sera pas modifiée, et en plus tu es sûr que c'est bien valide. Par exemple, si tu avais une classe ModeSettings, et si tu as une fonction qui s'appelle GetCurrentMode(), elle peut renvoyer un ModeSettings&, comme ça tu peux faire GetCurrentMode().angle=ModeSettings::radians ... On peut contester l'utilité des références dans ce genre de cas simple, mais c'est important pour la cohérence du langage si tu veux avoir des conversions automatiques, des opérateurs redéfinis du style -> ou [] (par exemple, renvoyer un vector& permet une utilisation moins "lourde" que renvoyer un vector* : GetTable()[i++]=read() est bien plus simple que (*GetTable())[i++]=read(), et je ne parle même pas de ce qui se passe si tu as plusieurs niveaux d'imbrications, parce que tu auras des parenthèses et des * dans tous les sens).
« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)
Pourquoi ?
ça change quoi par rapport au passage par adresse, si ce n'est que le code devient plus lisible ?
Peut-être que ça peut être une source d'erreur si on oublie que le paramètre est passé par référence...

« Quand le dernier arbre sera abattu, la dernière rivière empoisonnée, le dernier poisson capturé, alors vous découvrirez que l'argent ne se mange pas
. »
Bah, sans ça, tout le monde met (en tout cas, moi, j'utilise régulièrement ça, et je ne pense pas être le seul):
#define mafonction(ref) mafonction_(&ref)
void mafonction_(type *p_toto)
{
#define toto (*p_toto)
...
#undef toto
}
et ce n'est pas mieux.
PpHd Le 08/12/2003 à 14:04 Pkoi ne pas travailler avec les ptrs directement ? Ou est le mal ?
C'est plus simple à écrire.

« Quand le dernier arbre sera abattu, la dernière rivière empoisonnée, le dernier poisson capturé, alors vous découvrirez que l'argent ne se mange pas
. »
PpHd Le 08/12/2003 à 14:15 C'est surtout source de bugs...
PpHd Le 08/12/2003 à 16:35 C'est une maniere sale de repondre au probleme de renvoyer plusieurs parametres.
PpHd Le 08/12/2003 à 17:48 En quoi elle est plus simple et plus logique ?
Link Le 09/12/2003 à 12:45 Je trouve que le passage par référence est source d'erreur, et je ne l'utiliseque très rarement, quand j'ai à créer une classe C++ et à surdéfinir les opérateurs comme +, =, etc. qui eux, utilisent le passage par référence. Mais je n'ai eu de telle surdéfinition à faire qu'en cours de système en seconde année de BTS, alors autant dire que je n'en fait jamais... Je n'utilise que des pointeurs const/non-const

Maintenant j'ai la flemme de garder une signature à jour sur ce site. Je n'ai même plus ma chaîne Exec sous la main.
Link Le 09/12/2003 à 19:36 peut-être, mais au moins, sans passage par référence, tu peux être sur que la fonction appelée ne modifiera pas ta variable, même si tu n'as pas le prototype sous les yeux...

Maintenant j'ai la flemme de garder une signature à jour sur ce site. Je n'ai même plus ma chaîne Exec sous la main.
On peut aussi la passer par valeur, la structure. Dans notre patch pour GCC, je passe tous les struct smap_bcd_float par valeur.
Oui, mais si elle est un peu grosse c'est pas du tout efficace. En général, en C, pour passer des structures on passe plutôt des pointeurs, si l'objet est déjà stocké qq part en RAM.
« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)