Question tout bête de passage par référence - C++ - Programmation
Marsh Posté le 23-09-2004 à 19:43:22
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 ...
Marsh Posté le 23-09-2004 à 19:45:15
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 ?
Marsh Posté le 23-09-2004 à 19:47:48
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.
Marsh Posté le 23-09-2004 à 19:51:02
<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 ?
Marsh Posté le 23-09-2004 à 20:02:46
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...
Marsh Posté le 23-09-2004 à 20:07:49
t'as rien compris du tout ...
SI LE COMPILO GUEULE C'EST PARCE QUE TU FAIS N'IMPORTE QUOI
Marsh Posté le 23-09-2004 à 20:09:39
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)
Marsh Posté le 23-09-2004 à 20:10:46
Taz a écrit : t'as rien compris du tout ... |
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 ...
Marsh Posté le 23-09-2004 à 20:33:34
Kyle_Katarn a écrit : Bon, j'aime bien le style Taz |
Un admirateur.
Marsh Posté le 23-09-2004 à 20:41:28
Essaye :
Code :
|
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...
Marsh Posté le 23-09-2004 à 21:55:41
ç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 &
Marsh Posté le 23-09-2004 à 22:06:58
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...
Marsh Posté le 23-09-2004 à 22:10:09
y a un problème là, la documentation dit qu'il s'agit d'une valeur en argument, pas d'une référence ...
Marsh Posté le 23-09-2004 à 22:15:58
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> ?
Marsh Posté le 23-09-2004 à 22:18:46
Marsh Posté le 23-09-2004 à 22:19:40
effectivement tu risques d'en chier avec un paramètre template de type référence
Marsh Posté le 23-09-2004 à 19:26:17
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 :
avec m_carray un CArray et CMonObjet une classe dérivant de CObject avec un constructeur que je vous laisse deviner ( ), je me paye pas le message suivant :
warning C4239: nonstandard extension used : 'argument' : conversion from 'class CMonObject' to 'class CMonObject &'