Libreria: "iosfwd"
1. Definición :
librería estándar de C++ ofrece un archivo de cabecera de forward declarations de las clases de entrada y salida a flujos de bytes (iostreams):
#include <iosfwd>
De esta forma podemos utilizar los tipos ostream, istream, etc. sin necesidad de traer la definición de todas las clases de entrada y salida. Generalmente deberíamos utilizar el <iosfwd> en nuestro .h cuando no hagamos un mayor uso que sólo referenciarlas. Un ejemplo:
#ifndef EMPLEADO_IO_H#define EMPLEADO_IO_H#include <iosfwd> // forward declaration de ostreamclass Empleado; // forward declaration de nuestro tipo// Aquí no necesitamos conocer el tamaño ni de Empleado,// declarations.// ni de ostream, podemos compilar sólo con sus forward#endifvoid write_empleado_en_formato_binario(const Empleado&, ostream&);
2. Regla:
Siempre intenta usar las forward declarations antes que incluir los archivos de cabecera que definen las clases, los cuales suelen mostrar detalles de implementación que son propensos a cambiar. Siguiendo esta regla mejoraremos el tiempo de compilación y la cantidad de archivos a compilar al realizar una modificación en un .h.
Para más información, ver la sección 27.3 Forward declarations [iostream.forward] del último borrador público del estándar de C++
ejemplo:
|
No hay comentarios:
Publicar un comentario