Encabezados de C ++: ¿por qué un programa incluiría tanto iostream como ostream? [duplicar]

Vi algunos programas que incluyen <iostream> y <ostream> simultaneamente. ¿Por qué?

Gracias por su amable respuesta.

preguntado el 22 de febrero de 11 a las 07:02

¿Cuál es la pregunta aquí? -

@wwww tenía invisible <words> -

3 Respuestas

<iostream> is no es la combinación de <istream> y <ostream>. Simplemente define std::cin, std::cout y objetos relacionados. Para hacer algo útil con std::cout, todavía necesitas <ostream>. Ahora, según las reglas de C ++, es posible que algunas implementaciones realmente incluyan <ostream> in <iostream>, pero no deberías confiar en esto.

Respondido 22 Feb 11, 11:02

Este es un casi duplicado de stackoverflow.com/questions/4930176/… - MSalters

¿Por qué? Probablemente porque originalmente incluía solo ostream y alguien descubrió que también tenía que usar flujos de entrada. Entonces simplemente no se molestaron en quitar el ostream incluir.

O tal vez realmente necesitaban el concreto cin/cout/cerr objetos de flujo que se definen en iostream por separado a las cosas en istream/ostream, y no se dieron cuenta de que iostream tira de ambos istream y ostream antes de definir esos objetos.

Sin preguntarle al autor, es difícil de decir, pero esos son al menos dos y posibilidades.

Respondido 22 Feb 11, 10:02

Probablemente alguien olvidó quitar un encabezado. Siempre debe incluir solo lo que necesita en un archivo de implementación, pero a veces las cosas se quedan atrás porque la gente es vaga y / o no sabe nada mejor.

Debe eliminar el que no sea necesario.

Respondido 22 Feb 11, 10:02

Tu no necesitas para eliminarlo, ya que no tendrá ningún efecto. iostream sí mismo incluye istream y ostream y los mandatos estándar de que las implementaciones deben ocuparse de múltiples inclusiones. Mi consejo sería dejar lo que no está roto solo, aunque solo sea para no necesitar una edición en el control de código fuente. La próxima vez que tener para editar el archivo, piense en eliminarlo. - paxdiablo

Mal consejo. El código adicional e inútil es confuso. - Edward extraño

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.