He visto muchas explicaciones sobre when to use forward declarations over including header files, pero pocas de ellas explican por qué es importante hacerlo. Algunas de las razones que he visto son los siguientes:¿Por qué incluir un archivo de encabezado es algo tan malo?
- velocidad de compilación
- reducir la complejidad de la gestión del fichero de cabecera
- eliminación de dependencias cíclicas
proceder de un entorno .NET encuentro gestión de cabecera frustrante. Tengo esta sensación de que necesito dominar las declaraciones futuras, pero he estado abandonando hasta ahora.
¿Por qué no puede el compilador funcionar para mí y averiguar mis dependencias utilizando un mecanismo (incluye)?
¿Cómo las declaraciones de reenvío aceleran las compilaciones ya que en algún punto se necesitará compilar el objeto al que se hace referencia?
Puedo comprar el argumento para una complejidad reducida, pero ¿cuál sería un ejemplo práctico de esto?
No, pero al revés es muy útil. Ocultas lo que no se requiere y muestras lo que se requiere. – DumbCoder