Foros del Web » Programación para mayores de 30 ;) » C/C++ »

"Ostream" ¿Para que sirve y como se usa?

Estas en el tema de "Ostream" ¿Para que sirve y como se usa? en el foro de C/C++ en Foros del Web. Saludos, tengo la siguientes lineas de codigo: ostream& operator<<(ostream &os, const Cadena& cad) { os << cad.Lee(); return os; } Y lo unico que entiendo ...
  #1 (permalink)  
Antiguo 20/09/2008, 15:42
 
Fecha de Ingreso: julio-2008
Mensajes: 18
Antigüedad: 15 años, 9 meses
Puntos: 0
"Ostream" ¿Para que sirve y como se usa?

Saludos, tengo la siguientes lineas de codigo:

ostream& operator<<(ostream &os, const Cadena& cad)
{
os << cad.Lee();
return os;
}


Y lo unico que entiendo de ellas es que es una Sobrecarga del operador "<<".

Podria alguien, por favor, explicar que funciòn tiene aqui la palabra "ostream" y "ostream &os".

¿Talvez, "os" es una especie de "objeto" de tipo ostream?


Al menos una explicaciòn que me guie por el camino de entender este codigo.

Gracias.
  #2 (permalink)  
Antiguo 21/09/2008, 02:26
Avatar de Mort20  
Fecha de Ingreso: junio-2008
Ubicación: Roca Casterly
Mensajes: 141
Antigüedad: 15 años, 11 meses
Puntos: 2
Respuesta: "Ostream" ¿Para que sirve y como se usa?

Este tema yo lo tengo poco verde, pero el C++ para la entrada/salida (y para más cosas) usa los llamados streams o flujos.
Ostream, como su nombre indica, es outputstream o stream/flujo de salida. Es decir, que el cout es un Ostream, vamos. Y el cin un istream (inputstream).

Evidentemente, os es un objeto de tipo Ostream, por ello se le usa el "<<" par añadir cosas a ese flujo, y es devuelto.

En resumen esa función sirve para sobrecarga de objetos Cadena (bueno, evidentemente también para cualquier otro tipo).

Al hacer cout << obj_Cadena << endl; el "os" aquí es el cout, y la Cadena obj_Cadena, con lo que devuelve lo que tu quieres sin necesidad de usar funciones que devuelvan datos "habituales" (es decir, int, bool, double, float...).

Pero como digo, lo de los streams es algo que aún tengo muy verde (uno no tiene tiempo para todas las obligaciones :P), así que puede que tenga alguna confusión de ideas.

El uso de estos suele venir en manuales más avanzados como libros que enseñen la STL, o el propio libro de Bjarne Stroutstrup (el creador del lenguaje) de C++.
__________________
Un Lannister siempre cumple sus promesas
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:30.