| |||||
| Dernière réponse | ||
|---|---|---|
| Sujet : Retourner un objet en C++ | ||
| El_gringo |
|
|
| Aperçu |
|---|
| Vue Rapide de la discussion |
|---|
| El_gringo |
|
| BENB |
|
| darkoli |
|
| haahhahahaha | pointeur ou reference ?
chacun ces gouts et c tout. chacun a ses manieres de coder. perso, je prend les references kqn je pointe sur un seul objet. les pointeurs, c kan l'objet sur lekel il pointe change. jsais pas si vous comprener mais bon... |
| verdoux | J'ai pas dit qu'il fallait mettre des const character& dans le cas présent !
En fait surtout pas puisque les objets sont modifiés. Je repondais simplement à BENB sur un point de style. Elle préconise l'utilisation de références quand la fonction ne modifie pas les arguments et de pointeurs autrement alors que d'autres mettent des reférences partout selon la formule "Use references when you can, and pointers when you have to". [edit]--Message édité par Verdoux--[/edit] |
| El_gringo | ouais, mais ce que fait Verdoux avec ses const Character& src et l'autre truc, c qu'il passe l'adresse de du membre src, et ça y faut pas le modifier !
ç à dire que dans ta fonction, comme il l'a écrit, src est une adresse... tu peux donc par exemple la récupérer dans un pointeur sur ton membre src. si tu passe en arguement de ta fonction const Character& _addresseSrc et const Character& _adresseDest tu pourras récupérer à l'intérieur de ta fonction cette adresse dans un pointeur si tu connais plus les pointeurs (moi je préfère, c + clair !), en faisant: Character* src, dest; src = _adresseSrc; dest = _adresseDest; |
| BENB |
|
| bkadoum |
|
| verdoux |
|
| bkadoum |
|
| bkadoum | ouais avec les pointeurs ca a l'air de mieux marcher, merci! |
| BENB |
|
| AirBg | tgrx > je suis d'accord, les références c mieux.
dans ce cas c'est plus simple avec un . plutot que -> |
| bkadoum |
|
| haahhahahaha | reference c plus joli ke les pointeurs: c vrai mais juste ds les fonctions.
ds ce cas, pu de -> mais un simple . |
| tgrx | airbg> les references c'est plus joli que les pointeurs...
void attack(Character& src, Character& dest) |
| AirBg | Hey mais tu ne peux pas retourner 2 valeurs !!!! C'est impossible!
tu dois faire passer leur adresse en paramètre (pointeurs) pour pouvoir les modifier : void attack(Character *src, Character *dest) { // pour modifier un attribut de Character faut faire par exemple: // src -> nomattribut // ne retourne rien ! } |
| haahhahahaha | houla.... on retourne jamais deux fois ds une fonction !
en + je comprend pas ce ke tu veux : hero = src et creature = dest a l'interieur de la fonction. tu veux ke la fonction modifie les objets ? |
| Lord II | Une fonction ne peut retourner qu'une seule et unique variable. Pour plus de variable utiliser les pointeurs .... [edit]--Message édité par lord ii--[/edit] |
| bkadoum | J'arrive pas à retourner les valeurs d'un objet d'une fontion à une autre. Voici comment j'ai fait:
//Appel de la fonction, je passe en argument 2 objets provenant d'une classe nomée Character attack(hero, creature); //Voici la fonction qui doit retourner des objets de la classe Character: Character attack(Character src, Character dest) { ... //A la fin de la fonction je retourne les 2 objets return src; return dest; } Donc la respectivement, les objets hero et creature devraient reprendre les valeurs de src et dest non? mais ca marche pas. Est-ce qu'il faut s'y prendre autrement? Dois-je écrire un constructeur de copie spécial? Utiliser des pointeurs? Je suis un peu perdu :) |




