 |
C++Talk.NET C++ language newsgroups
|
| View previous topic :: View next topic |
| Author |
Message |
Michaël Delva Guest
|
Posted: Wed Sep 03, 2003 8:57 pm Post subject: Un temporaire a été utilisé pour initialiser... |
|
|
Bonsoir,
en compilant mon programme (avec BCB 6), j'ai eu l'avertissement suivant:
[C++ Avertissement] FicheAnalyseColl.cpp(169): W8028 Un temporaire a été
utilisé pour initialiser 'TA'
Voici les infos nécessaires:
class Analyse_Donnees
{
public:
//Nom de la stat + Frame de la stat
typedef pair<AnsiString,int> Paire_Ansi_Int;
//nom de la stat + liste des Frames
typedef vector<Paire_Ansi_Int> ActionsUneStat;
typedef ActionsUneStat::iterator ite_Stat;
//Nom du joueur + stats
typedef map<AnsiString, ActionsUneStat> ActionsJoueurs;
typedef ActionsJoueurs::iterator ite_Action_Joueur;
//Equipe + Joueurs
typedef map<AnsiString, ActionsJoueurs> ToutesActions;
typedef ToutesActions::iterator ite_Action_Equipe;
const ToutesActions & m_TA() const { return this->TA; }
private:
ToutesActions TA;
};
Et l'avertissement a lieu à cette ligne, dans une autre classe:
Analyse_Donnees::ToutesActions & TA = A_D->m_TA();
Par contre si je mets la ligne de déclaration de TA en public et que je
mets:
Analyse_Donnees::ToutesActions & TA = A_D->TA;
Je n'ai plus ce problème.
BCB dit qu'il me met cet avertissement:
En C++, une variable ou un paramètre de type référence doit se voir
affecter une référence à un objet du même type. Si les types ne sont pas
identiques, la valeur est affectée à un temporaire du bon type, et
l'adresse du temporaire est affecté à la variable ou au paramètre de
référence. Cet avertissement signifie que la variable ou le paramètre de
référence ne désigne pas ce qui était prévu, mais une variable temporaire
autrement inutilisée.
Hors, j'affecte une référence du même type!!
Pourriez vous m'expliquer ce qui cloche?
|
|
| Back to top |
|
 |
Fabien LE LEZ Guest
|
Posted: Wed Sep 03, 2003 9:17 pm Post subject: Re: Un temporaire a été utilisé pour initialiser... |
|
|
On 03 Sep 2003 20:57:39 GMT, "Michaël Delva" <zoubidaman (AT) hotmail (DOT) com>
wrote:
| Quote: | const ToutesActions & m_TA() const { return this->TA; }
private:
ToutesActions TA;
};
Et l'avertissement a lieu à cette ligne, dans une autre classe:
Analyse_Donnees::ToutesActions & TA = A_D->m_TA();
|
Tu essaies de convertir un "const ToutesActions &" en un
"ToutesActions &". Ce n'est pas possible, donc le compilateur crée un
objet temporaire non-const.
|
|
| Back to top |
|
 |
Michaël Delva Guest
|
Posted: Wed Sep 03, 2003 9:42 pm Post subject: Re: Un temporaire a été utilisé pour initialiser... |
|
|
| Quote: | Tu essaies de convertir un "const ToutesActions &" en un
"ToutesActions &". Ce n'est pas possible, donc le compilateur crée un
objet temporaire non-const.
|
Donc il faut que j'enlève un const...
Mais lequel des deux?
|
|
| Back to top |
|
 |
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|