Bonjour tout le monde,

J'ai une question sur l'héritage multiple (enfin il me semble que ce cas est de l'héritage multiple --> à confirmer) :

J'ai une classe CChargeurFichierTexte :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
class CChargeurFichierTexte : public CChaineComposee
{
public:
	CChargeurFichierTexte();
	~CChargeurFichierTexte();

	bool			Charger(const char* NomFichier, char UnSeparateur, bool (* FctnTraiterLigne)(const CChargeurFichierTexte&, void*), void* Contexte);

private:
};
on voit qu'elle hérite des objets publics de CChaineComposee :

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
class CChaineComposee : private CChaine
{
public:
	CChaineComposee();														// Constructeur par défaut
	CChaineComposee(const CChaineComposee& Source);							// Constructeur par copie
	CChaineComposee(const char* UneChaine, char UnSeparateur);				// Constructeur spécifique
	~CChaineComposee();														// Destructeur

	long			NombreChamps() const;									// Accesseur du nombre de champs
	const char*		Champs(long Indice) const;								// Accesseur d'un champ

	bool			Definir(const char* UneChaine, char UnSeparateur);		// Modificateur permettant de modifier la chaîne et de générer le tableau des champs

private:
	bool			Decomposer(char UnSeparateur);							// Modificateur permettant de modifier la chaîne et de générer le tableau des champs

private:
	long			m_NbrChamps;
	char**			m_Champs;
};
Qui elle même hérite de CChaine :

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
class CChaine
{
public:
	CChaine();																// Constructeur par défaut
	CChaine(const CChaine& Source);											// Constructeur par copie
	CChaine(const char* UneChaine);											// Constructeur spécifique
	~CChaine();																// Destructeur
 
	const char*		Chaine() const;											// Accesseur du texte de la chaîne
	bool			EstNull() const;										// Accesseur de test sur le texte (m_Chaine == NULL)
	bool			EstVide() const;										// Accesseur de test sur le texte (m_Chaine == NULL) || (m_Chaine == "")
 
	void			Vider();												// Modificateur permettant de supprimer le texte de la chaîne (on revient à NULL)
	bool			Chaine(const char* UneChaine);							// Modificateur du texte de la chaîne
 
private:
	char*			m_Chaine;												// Membre contenant l'adresse du tableau de caractères alloué dynamiquement
};
- On parle bien d'héritage multiple ici ?

- Est-ce que la classe CChargeurFichierTexte hérite de quelque chose de la classe CChaine ?
- CChaineComposee a un héritage private de CChaine, elle hérite de quoi alors de cette classe là ?

Un super grand merci d'avance pour votre aide et un super bon dimanche.

beegees