Opérateur d'affichage C++ <<
Bonjour,
Voici une version minimale de mon code:
Classe Neurone:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
|
ostream& afficher(ostream& sortie) const
{
sortie << "Le neurone en position ("<<position_.x()<<", "<<position_.y()<<") avec une atténuation de "<<attenuation_;
if (fils.empty()){
sortie << " n'est connnecté à aucun neurone." << endl;}
else
{
sortie << " est connecté au(x) neurone(s) suivant(s) :" << endl;
for (auto const& n : fils)
{
sortie <<" - neurone en position ("<<(n->position()).x()<<", "<<(n->position()).y()<<")" << endl;
}
}
return sortie;
} |
Classe Cerveau:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
|
class Cerveau{
public:vector<Neurone *> connectome_;
....
ostream& afficher(ostream& sortie) const{
sortie << "Un cerveau à " << connectome_.size() << " neurone(s) :" << endl;
for(size_t i=1;i<connectome_.size();i++)
{ sortie<<connectome_[i]->afficher(sortie);
}
return sortie;
}
friend std::ostream& operator <<(std::ostream&, const Cerveau&);
};
ostream& operator<<(ostream& sortie, Cerveau const& c)
{
c.afficher(sortie);
return sortie;
}; |
J'ai un affichage du genre: ox64251.. le neurone en position
Avez-vous une idée sur l'erreur ?
Merci d'avance.
Cordialement.