Comment puis-je utiliser cout << maclasse
myclass
est une classe C++ écrit par moi, et quand j'écris:
myclass x;
cout << x;
Comment puis-je sortie 10
ou 20.2
, comme un integer
ou un float
valeur?
Vous devez vous connecter pour publier un commentaire.
Généralement par la surcharge
operator<<
pour votre classe:10
?myclass
a toutprivate
champs, et que vous voulezoperator<<()
à la sortie de leur,myclass
doit déclarerstd::ostream& operator<<(std::ostream&, myclass const&)
comme un ami.const myclass &m
au lieu demyclass const &m
?const
après le type, il dit:m is a reference to a const myclass
. Avec elle avant que le type, il est dit "m est une référence à un const maclasse", qui est à droite sur le bord loqueteux entre sens et vraiment non grammaticale.Vous avez besoin de surcharger la
<<
opérateur,Puis, quand vous ne
cout << x
(oùx
est de typemyclass
dans votre cas), il serait sortie de tout ce que vous avez dit dans la méthode. Dans le cas de l'exemple ci-dessus, il serait lex.somevalue
membre.Si le type de membre ne peut être ajouté directement à un
ostream
, alors vous devez surcharger la<<
opérateur pour ce type aussi, en utilisant la même méthode que ci-dessus.c'est très facile, il suffit de mettre en œuvre des :
Vous avez besoin de retourner une référence à l'os, afin de la chaîne de l'outpout (cout << toto << 42 << endl)
Alternative: