Bonjour tout le monde,

Je ne comprends pas cette ligne :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
m_Mots.Ajouter(CMot(Mot,ReferenceFF));
elle fait partie de cette méthode :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
bool CTabMots::Ajouter(CMot& Modele)
{
	return CTableauGenerique::Ajouter(Modele);
}
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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