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

  FORUM HardWare.fr
  Programmation
  C++

  Question tout bête de passage par référence

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Question tout bête de passage par référence

n°856672
Kyle_Katar​n
Posté le 23-09-2004 à 19:26:17  profilanswer
 

Veuillez excuser le côté newb de ma question mais je suis, le temps d'un stage, un transfuse de Delphi vers C++.
 
Comment faire pour que quand je fais :
 

Code :
  1. m_carray.Add(CMonObject("Coucou" ));


 
avec m_carray un CArray et CMonObjet une classe dérivant de CObject avec un constructeur que je vous laisse deviner ( :lol: ), je me paye pas le message suivant :  
 

Citation :

warning C4239: nonstandard extension used : 'argument' : conversion from 'class CMonObject' to 'class CMonObject &'

mood
Publicité
Posté le 23-09-2004 à 19:26:17  profilanswer
 

n°856680
Taz
bisounours-codeur
Posté le 23-09-2004 à 19:43:22  profilanswer
 

ton compilateur te fait un message bouseux ... en gros, de ce que je comprends, il te dit que passer un objet temporaire par référence (non-const) n'est pas standard : d'ailleurs, tu comprends bien que ça ne sert à rien, puisque tu ne peux pas récupérer les modifications ...

n°856683
Kyle_Katar​n
Posté le 23-09-2004 à 19:45:15  profilanswer
 

J'avais bien compris. Mon compilo n'est autre que le célèbre (pour sacompatibilité légendaire) Visual C++ 6.0...
 
Donc a priori tu n'as rien de particulier à redire surl a méthode que j'emploie ? Il n'y a pas plus élégant et VC6-compliant ?

n°856684
Taz
bisounours-codeur
Posté le 23-09-2004 à 19:46:05  profilanswer
 

t'as pas lu ce que j'ai dit ou quoi ?

n°856686
Kyle_Katar​n
Posté le 23-09-2004 à 19:47:48  profilanswer
 

j'ai bien compris ton jugement vis à vis du message du compilo, je voulais juste savoir si la méthode employée ("le code" ) était la bonne / si tu n'en avais pas une meilleure dans tes manches.

n°856689
Taz
bisounours-codeur
Posté le 23-09-2004 à 19:51:02  profilanswer
 

<mode pascal>
 
tu vois le var, pour passer un paramètre out, ben les références ça fait même emploi : tu vois un intérêt à passer un objet temporaire comme paramètre out ?

n°856693
Taz
bisounours-codeur
Posté le 23-09-2004 à 19:56:40  profilanswer
 

donc ça révêle également un mauvais usage de ta part

n°856700
Kyle_Katar​n
Posté le 23-09-2004 à 20:02:46  profilanswer
 

ok d'accord mais dans mon cas pour stocker des objects dans un CArray lors de leur création comment dois je procéder ? Parceque même si je comprend ton analogie avec var, le fait est que la méthode marche... mais comme j'aime pas faire une appli qui fait brailler le compilo...

n°856705
Taz
bisounours-codeur
Posté le 23-09-2004 à 20:07:49  profilanswer
 

t'as rien compris du tout ...
 
SI LE COMPILO GUEULE C'EST PARCE QUE TU FAIS N'IMPORTE QUOI

n°856708
Kyle_Katar​n
Posté le 23-09-2004 à 20:09:39  profilanswer
 

Ok.
 
DONC PLUTOT QUE D'ECRIRE EN CAPS, POURRAIS TU ME DONNER UN PETIT SAMPLE CONVERTISSANT MON CODE EXEMPLE EN CODE "OK" ?
 
(et dans ta grande mensuétude me dire comment un truc pareil peut marcher, car c'est quand même le cas)

mood
Publicité
Posté le 23-09-2004 à 20:09:39  profilanswer
 

n°856710
Kyle_Katar​n
Posté le 23-09-2004 à 20:10:46  profilanswer
 

Taz a écrit :

t'as rien compris du tout ...
 
SI LE COMPILO GUEULE C'EST PARCE QUE TU FAIS N'IMPORTE QUOI


 
D'ailleurs je vois pas le rapport entre cette réponse de ta part et la mienne au dessus ... aurais tu sauté une étape.
 
Bon, j'aime bien le style Taz, ça détend mais ça serait bien que tu donnes aussi un peu d'aide  :)  :ange:  ...

n°856730
sircam
I Like Trains
Posté le 23-09-2004 à 20:33:34  profilanswer
 

Kyle_Katarn a écrit :

Bon, j'aime bien le style Taz


Un admirateur.


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
n°856732
Kyle_Katar​n
Posté le 23-09-2004 à 20:34:51  profilanswer
 

non, un habitué !

n°856740
el muchach​o
Comfortably Numb
Posté le 23-09-2004 à 20:41:28  profilanswer
 

Essaye :

Code :
  1. CMonObject coucou("Coucou" );
  2. m_carray.Add(coucou);


 

Citation :

d'ailleurs, tu comprends bien que ça ne sert à rien, puisque tu ne peux pas récupérer les modifications ...


 
Ben si l'objet pèse 20 ko...


Message édité par el muchacho le 23-09-2004 à 20:45:24
n°856743
Kyle_Katar​n
Posté le 23-09-2004 à 20:44:54  profilanswer
 

ok merci !

n°856823
Taz
bisounours-codeur
Posté le 23-09-2004 à 21:55:41  profilanswer
 

ça ne résout pas le problème : passer un objet local par référence (non-const), quand tu retourneras à la portée supérieure, ça partira dans le décor ...
 
à toi de savoir ce que fait .Add et pourquoi ça demande une &

n°856834
Kyle_Katar​n
Posté le 23-09-2004 à 22:06:58  profilanswer
 

Ben le problème c'est que c'est CArray donc un composant "de base" des MFC dont je doute que le code soit fournit (je me trompe ?)
 
MSDN : http://msdn.microsoft.com/library/ [...] carray.asp
 
Visiblement c'est la méthode El Muchacho (qui ne diffère pas énormément de la mienne conceptuellement) qui semble utilisée dans les tuto Carray que j'ai pu trouver...

n°856837
Taz
bisounours-codeur
Posté le 23-09-2004 à 22:10:09  profilanswer
 

y a un problème là, la documentation dit qu'il s'agit d'une valeur en argument, pas d'une référence ...

n°856845
Kyle_Katar​n
Posté le 23-09-2004 à 22:15:58  profilanswer
 

En fait tout dépend comment tu déclare la template. J'ai oublié de dire moi c'est <MonObjet, MonObjet&>
 
Faut il que je mette <MonObjet, MonObjet> ?

n°856847
chrisbk
-
Posté le 23-09-2004 à 22:18:46  profilanswer
 

[:hfrbaxter]


Message édité par chrisbk le 23-09-2004 à 22:18:56

---------------
NP: HTTP Error 764 Stupid coder found
n°856849
Taz
bisounours-codeur
Posté le 23-09-2004 à 22:19:40  profilanswer
 

effectivement tu risques d'en chier avec un paramètre template de type référence :o

n°856852
Kyle_Katar​n
Posté le 23-09-2004 à 22:20:43  profilanswer
 

ok :)

mood
Publicité
Posté le   profilanswer
 


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

  Question tout bête de passage par référence

 

Sujets relatifs
Question sur les CMSPoser une question sous dos et obtenir un paramètre en retour?
[Perl] Question de logique mathématiqueQuestion sur les iframes
Question sur code de ma pageQuestion sur les iframes !!
Access, affichage au passage de la souris[Perl] Passage de variable d'un script a un autre
Référence[Résolu] Passage de "paramêtres" entre pages
Plus de sujets relatifs à : Question tout bête de passage par référence


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