salida - que significa endl en c++
¿Cómo puedo usar cout<< myclass (3)
Necesita sobrecargar el operador <<
,
std::ostream& operator<<(std::ostream& os, const myclass& obj)
{
os << obj.somevalue;
return os;
}
Luego, cuando hagas cout << x
(donde x
es de tipo myclass
en tu caso), myclass
lo que le hayas dicho en el método. En el caso del ejemplo anterior, sería el miembro x.somevalue
.
Si el tipo del miembro no se puede agregar directamente a un ostream
, entonces también deberá sobrecargar el operador <<
para ese tipo, utilizando el mismo método que el anterior.
myclass
es una clase de C ++ escrita por mí y cuando escribo:
myclass x;
cout << x;
cómo sacar 10
o 20.2
, como un integer
o un valor float
?
Típicamente al sobrecargar al operator<<
para su clase:
struct myclass {
int i;
};
std::ostream &operator<<(std::ostream &os, myclass const &m) {
return os << m.i;
}
int main() {
myclass x(10);
std::cout << x;
return 0;
}
es muy fácil, solo implemente:
std::ostream & operator<<(std::ostream & os, const myclass & foo)
{
os << foo.var;
return os;
}
Debes devolver una referencia al sistema operativo para encadenar el outpout (cout << foo << 42 << endl)