Bonjour tout le monde,
Je ne comprends pas cette ligne :
m_Mots.Ajouter(CMot(Mot,ReferenceFF));
elle fait partie de cette méthode :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| bool CTraitementFF::TraiterLigne_FauxFreres(const CChargeurFichierTexte& Chargeur)
{
if (Chargeur.NombreChamps() != 7) return true;
long Code = atol(Chargeur.Champs(0));
const char* Mot = Chargeur.Champs(1);
char CodeNature = toupper(Chargeur.Champs(2)[0]);
bool Feminin = (toupper(Chargeur.Champs(3)[0]) == 'O');
bool Pluriel = (toupper(Chargeur.Champs(4)[0]) == 'O');
const char* Nature = Chargeur.Champs(5);
const char* Definition = Chargeur.Champs(6);
if (!m_FF.Ajouter(CFauxFrere(Mot,Code,Nature,Definition))) return true;
/*Donc là j'ai défini le faux-frère, maintenant je vais en prendre la référence, s'est une
référence de faux-frère, je sais qu'il existe parce que "Ajouter" m'a renvoyé VRAI, donc je
vais rechercher un élément en fonction de l'indice que j'aurai trouvé via une recherche sur le
mot donc j'appelle Indice qui me renvoie l'indice par rapport au mot et avec cet indice
j'accède à un élément et je note cette référence dans cette variable locale que j'appelle
ReferenceFF */
CFauxFrere& ReferenceFF = m_FF.Element(m_FF.Indice(Mot));//<-- un utilise la variable Mot créé ci-dessus
m_Mots.Ajouter(CMot(Mot,ReferenceFF));
return true;
} |
et elle appelle celle-ci :
1 2 3 4
| bool CTabMots::Ajouter(CMot& Modele)
{
return CTableauGenerique::Ajouter(Modele);
} |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| bool CTableauGenerique::Ajouter(const CGenerique& ModeleAAjouter, bool RetourEnCasDeDoublon)
{
if (!ModeleAAjouter.EstValide()) return false;
if ( (m_Poubelle->GereUnicite()) && (Indice(ModeleAAjouter) >= 0) ) return RetourEnCasDeDoublon;
void* Nouveau = realloc(m_Tableau,(m_Nombre+1)*sizeof(CGenerique*));
if (Nouveau == NULL) return false;
m_Tableau = (CGenerique**)Nouveau;
CGenerique* AAjouter = ModeleAAjouter.Cloner();
if (!AAjouter->EstValide())
{
delete AAjouter;
return false;
}
m_Tableau[m_Nombre] = AAjouter;
m_Tableau[m_Nombre]->DefinirConteneur(this);
m_Nombre++;
return true;
} |
Ce que je ne comprends pas, s'est pourquoi on a besoin de la référence d'un autre mot pour ajouter mon mot ?
Merci d'avance pour votre aide et bon lundi de Pentecôte.
beegees
Partager