Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1232 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  Renvoyer un objet

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Renvoyer un objet

n°712120
luminou
Posté le 29-04-2004 à 18:02:53  profilanswer
 

Bonjour !
 
J'ai surchargé un opérateur + pour additionner deux objets de ma création. Ca a pour but d'additioner les deux valeurs numériques de l'objet (qui contient également comme attribut des char *). Voici le corps de ma surcharge sachant que l'objet renvoyé est correct pour la valeur numérique, mais que les char * sont complètement modifiés !!! A koi cela est il du ? et pardon pour mon incultivisme !  
 
carte operator+(const carte aCarte, const carte aCarte2) {
const carte temp = carte(aCarte2.col,aCarte.val + aCarte2.val, aCarte2.figure);
return temp;
}

 
jusqu'au return tout est ok mais une fois qu'il est exécuté tout est bad ...! Merci d'avance

mood
Publicité
Posté le 29-04-2004 à 18:02:53  profilanswer
 

n°712127
myst78
Posté le 29-04-2004 à 18:07:58  profilanswer
 

ben si t'initialises pas les char* (taz va te tapper :p) de ton nouvel objet temp, je crois bien que forcement il vont valoir du n'importe quoi... :)


---------------
Fleur de métal, entité invulnérable, vêtue tant bien que mal, d'une muraille inébranlable...
n°712137
luminou
Posté le 29-04-2004 à 18:11:42  profilanswer
 

Le problème ne vient pas de là, car ils sont initialisés (j'ai quelque peu tronqué la fonction). Ce qui me laisse perplexe c'est que des attributs des deux objets aCarte et aCarte2 sont modifiés en des chaînes de carac de *ù%!;  

n°712143
myst78
Posté le 29-04-2004 à 18:15:36  profilanswer
 

hum, je sais pas trop...
fait voir toute la fonction...
et pis passe tes objets par reference plutot que par valeur


---------------
Fleur de métal, entité invulnérable, vêtue tant bien que mal, d'une muraille inébranlable...
n°712163
luminou
Posté le 29-04-2004 à 18:32:35  profilanswer
 

Voila all my code un peu modif mais qui devrait marcher :
 
[i]carte carte :: operator+(const carte& aCarte) {
carte * temp =new carte(aCarte.col,this->val + aCarte.val,"" );
return * temp;
}
[\i]

n°712165
myst78
Posté le 29-04-2004 à 18:34:32  profilanswer
 

oui ca me semble plus correct, mais avec un carte* au lieu de carte pour le type de retour ca sera mieux :p


---------------
Fleur de métal, entité invulnérable, vêtue tant bien que mal, d'une muraille inébranlable...
n°712167
luminou
Posté le 29-04-2004 à 18:36:37  profilanswer
 

a priori ca ne devrai rine changer ???

n°712170
myst78
Posté le 29-04-2004 à 18:38:21  profilanswer
 

ouuuuuuuups je n'ai rien dit :D
 
bon et donc ca marche maintenant ?


Message édité par myst78 le 29-04-2004 à 18:38:40

---------------
Fleur de métal, entité invulnérable, vêtue tant bien que mal, d'une muraille inébranlable...
n°712172
luminou
Posté le 29-04-2004 à 18:42:25  profilanswer
 

Yep !!!! Je suis un lutteur professionnel !! lol et merci beaucoup pour ton aide ... j'ai un tout ptit test qui décidera de mon avenir demain, et comme je suis plus rouillé en objet, c rassurant de voir qu'on peut encore compter sur quelques presonnes ! Merci Beaucoup encore une fois

n°712175
myst78
Posté le 29-04-2004 à 18:46:56  profilanswer
 

bof j'ai rien fait à part poser des questions :)
 
c'est quoi le test ? :p


---------------
Fleur de métal, entité invulnérable, vêtue tant bien que mal, d'une muraille inébranlable...
mood
Publicité
Posté le 29-04-2004 à 18:46:56  profilanswer
 

n°712178
luminou
Posté le 29-04-2004 à 18:49:57  profilanswer
 

En gros ca ne doit durer qu'une heure et ca devrait correspondre à une implémentation de classe. Si c du classique avec un peu de surcharge, ca devrait passer car je ne suis pas complètement rouillé. Mais si ca va chercher un peu trop loin, je suis un peu dans la mouize ... et comme je chôme depuis quelques temps déjà, je mise beaucoup dessus !

n°712237
Taz
bisounours-codeur
Posté le 29-04-2004 à 19:49:38  profilanswer
 

dis donc luminou ... t'enchaine connerie sur connerie ?
 

Code :
  1. inline
  2. carte operator+(const carte &left, const carte &right) {
  3. return carte(aCarte2.col, aCarte.val + aCarte2.val, aCarte2.figure);
  4. }


 
fait gaffe, ce doit être une fonction globale

n°712295
luminou
Posté le 29-04-2004 à 21:15:35  profilanswer
 

C clair que je suis un deconneur !!! lol
Mais il faut bien quelqu'un pour faire tourner le forum à plein régime non ????

n°712310
ffluff
Challenge Everything
Posté le 29-04-2004 à 21:41:31  profilanswer
 

Taz a écrit :

dis donc luminou ... t'enchaine connerie sur connerie ?
 

Code :
  1. inline
  2. carte operator+(const carte &left, const carte &right) {
  3. return carte(aCarte2.col, aCarte.val + aCarte2.val, aCarte2.figure);
  4. }


 
fait gaffe, ce doit être une fonction globale


ahahah faux !!!
aCarte2 et aCarte !? ca devrais pas être rigth et left ?
 
 [:ffluff]


---------------
«Le succès consiste à aller d'échecs en échecs sans jamais perdre son enthousiasme» - Churchill

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  Renvoyer un objet

 

Sujets relatifs
est possible de faire ca... enregistrer un objet image...Limites PHP objet
[Java] un objet File a partir d'un Reader?Marquage d'une catégorie d'objet : interface vide ou flag booleén ?
prendre une partie d'un objet vectorHelp : VBA : Gestion/Modification d'un Objet OLE Powerpoint dans Excel
[Delphi] Un composant ayant l'allure de l'inspecteur d'objet?probleme avec pointeur sur objet
[python] copier un objetcomment acceder a une methode d un objet lui meme dans un ArrayList
Plus de sujets relatifs à : Renvoyer un objet


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR