Les types primitifs étant POD, il y a une différence entre laisser le compilo les "initialiser" (en fait ne rien faire) et appeler explicitement leur constructeur par défaut. L'appel explicite les initialisera à zéro.
En fait, je serais plutôt partisan de faire les deux, ce qui évite d'avoir à déclarer l'opérateur en friend pour pas grand-chose:
Code:
1
2
3
4
5
6
7
8
9
10 void MyObject::afficher(std::ostream& output) const // ATTENTION: on n'oublie pas le mot-clef "const" ^^ { output << "Attribut_int = " << m_int_attribut << std::endl; } std::ostream & operator<<(std::ostream & o, MyObject const & a) { a.afficher(o); return o; }