Aucun des constructeur n'envoie les bonnes informations à ma méthode
Bonjour tout le monde,
Je dois charger le contenu d'un fichier txt mais j'ai déjà un problème :(
Mon problème se situe dans cette méthode :
Code:
1 2 3 4 5
| bool CTabFauxFreres::TraiterLigne(const CChargeurFichierTexte& Chargeur)
{
if (Chargeur.NombreChamps() == 7) Ajouter(CFauxFrere(Chargeur.Champs(0),Chargeur.Champs(1),Chargeur.Champs(2),Chargeur.Champs(3),Chargeur.Champs(4),Chargeur.Champs(5),Chargeur.Champs(6)));
return true;
} |
et le message d'erreur est le suivant :
Citation:
error C2665: 'CFauxFrere::CFauxFrere' : none of the 3 overloads can convert parameter 1 from type 'const char *'
La méthode TraiterLigne est appelée par cette méthode :
Code:
1 2 3 4 5 6
| bool CTabFauxFreres::Charger(const char* NomFichier)
{
CChargeurFichierTexte Chargeur;
return Chargeur.Charger(NomFichier,'\t',FctnTraiterLigne,this);
} |
et je pense qu'elle reçoit les informations du constructeur par copie (je n'en suis pas sûr) :
Code:
1 2 3 4
| CFauxFrere::CFauxFrere(const CFauxFrere& Source)
:m_Code(Source.m_Code),m_Nom(Source.m_Nom),m_Nature(Source.m_Nature),m_Feminin(Source.m_Feminin),m_Pluriel(Source.m_Pluriel),m_Descriptif(Source.m_Descriptif),m_Definition(Source.m_Definition)
{
} |
Voici la déclaration de la fonction TraiterLigne dans le header file :
Code:
bool TraiterLigne(const CChargeurFichierTexte& Chargeur);
Edit : Je viens avec du nouveau :
Si le paramètre 1 est bien m_Code de type short, j'ai alors mis :
Ajouter(CFauxFrere((short)atol(Chargeur.Champs(0))
le message d'erreur est donc maintenant :
Citation:
error C2665: 'CFauxFrere::CFauxFrere' : none of the 3 overloads can convert parameter 3 from type 'const char *'
Je pense que le paramètre est de type booléen, comment puis-je faire la même chose pour un booléen ?
Quand il parle de paramètre 1, s'est bien le champ 0 ?
Voilà, je vous remercie d'avance pour votre aide.
beegees