Comment puis-je utiliser cout << myclass

myclass est une classe C ++ écrite par moi et quand j’écris:

 myclass x; cout << x; 

Comment puis-je générer 10 ou 20.2 , comme un integer ou une valeur float ?

En général, en surchargeant l’ operator<< pour votre classe:

 struct myclass { int i; }; std::ostream &operator<<(std::ostream &os, myclass const &m) { return os << mi; } int main() { myclass x(10); std::cout << x; return 0; } 

Vous devez surcharger l’opérateur << ,

 std::ostream& operator<<(std::ostream& os, const myclass& obj) { os << obj.somevalue; return os; } 

Ensuite, si vous faites cout << x (où x est de type myclass dans votre cas), cela produira ce que vous avez dit dans la méthode. Dans le cas de l'exemple ci-dessus, ce serait le membre x.somevalue .

Si le type du membre ne peut pas être ajouté directement à un ostream , vous devrez alors surcharger l'opérateur << pour ce type également, en utilisant la même méthode que ci-dessus.

c’est très simple, il suffit d’implémenter:

 std::ostream & operator<<(std::ostream & os, const myclass & foo) { os << foo.var; return os; } 

Vous devez renvoyer une référence à os pour enchaîner le débordement (cout << foo << 42 << endl)