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

cs_007berty Messages postés 13 Date d'inscription mercredi 26 décembre 2007 Statut Membre Dernière intervention 16 janvier 2009 - 25 mars 2008 à 13:11
cs_exar Messages postés 286 Date d'inscription vendredi 5 décembre 2003 Statut Membre Dernière intervention 22 avril 2012 - 12 févr. 2009 à 14:45
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

cs_laurent1024 Messages postés 987 Date d'inscription mardi 31 mai 2005 Statut Membre Dernière intervention 30 août 2012 25
25 mars 2008 à 13:37
<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>
0
cs_exar Messages postés 286 Date d'inscription vendredi 5 décembre 2003 Statut Membre Dernière intervention 22 avril 2012 1
12 févr. 2009 à 14:45
Et ne pas oublier en fin de méthode:
   return O;

Sinon, ça ne sert à rien...
0
Rejoignez-nous