Comment surcharger l'opérateur << pour l'écriture dans un fichier en c++?

Signaler
Messages postés
13
Date d'inscription
mercredi 26 décembre 2007
Statut
Membre
Dernière intervention
16 janvier 2009
-
Messages postés
286
Date d'inscription
vendredi 5 décembre 2003
Statut
Membre
Dernière intervention
22 avril 2012
-
bonjour!
voici un extrait d'une classe en c++ et dont j'aimerai stocker les enregistrements dans un fichier. On m'a dit qu'il fallait surcharger l'opérateur <<. ce que j'ai fait plus bas, mais cela me signale une erreur.
class tabPersonne
{
Personne **table;
int taille;
int index;
public:
tabPersonne(int t);
~tabPersonne();
void ajoute(Personne *p);
void affiche();
float moyenne_Annee();
int nbreTotal_personne();
};


ofstream sortie("Enregistrement.txt",ios::out|ios::trunc);
if(sortie)
{
sortie<<tab.ajoute(&ens)<<"\n";
}
else
{
cerr<<"creation impossible \n";
}

j'aimerai que vous me dites exactement comment proceder afin non seulement de surcharger l'opérateur <<, mais aussi comment stocker mes enregistrement dans un fichier à partir de ma classe.
Merci!!

2 réponses

Messages postés
987
Date d'inscription
mardi 31 mai 2005
Statut
Membre
Dernière intervention
30 août 2012
21
<code class="cpp_keyword1">dans ta classe il faut définir
friend

std::
ostream
&amp;
operator
<
<
(
std::
ostream
&amp;
O,
const
TaClasse
&amp;
classe);

</code>
<code class="cpp_function">std::
ostream
&amp;
operator
<
<
(
std::
ostream
&amp;
O,
const
</code>
TaClasse


&
classe) 
<code class="cpp_operator">{

O << classe.Mapripriete; ....
}

*
Cdt
</code>
Messages postés
286
Date d'inscription
vendredi 5 décembre 2003
Statut
Membre
Dernière intervention
22 avril 2012
2
Et ne pas oublier en fin de méthode:
   return O;

Sinon, ça ne sert à rien...