SoloCodigo

Programación General => C/C++ => Mensaje iniciado por: paranoiamaria en Miércoles 23 de Julio de 2008, 16:46

Título: Cabecera en ficheros .h y .cpp
Publicado por: paranoiamaria en Miércoles 23 de Julio de 2008, 16:46
Hola,

Tengo que programar una aplicación y el diseño incluye clases. Tengo una duda, que no he conseguido aclarar buscando por la web,  no sé la diferencia entre insertar las cabeceras #include<> en el fichero .h o en el .cpp de una clase. Tanto si los incluyo en el .h como en el .cpp compila, pero me gustaría saber la diferencia y qué es más eficiente.
Otra cosilla, ¿es obligatorio insertar en el fichero miClase.cpp la directiva #include <miClase.h>?

Muchas gracias por adelantado
Título: Re: Cabecera en ficheros .h y .cpp
Publicado por: Elforious en Miércoles 23 de Julio de 2008, 19:16
Para mi es más eficiente colocar los #iclude<> en el .h, por el hecho de que los tenés que poner entre los if:

Código: Text
  1. #ifndef Unit1H
  2. #define Unit1H
  3. //---------------------------------------------------------------------------
  4. #iclude<...>
  5. #iclude<...>
  6. #iclude<...>
  7. //---------------------------------------------------------------------------
  8. #endif
  9.  

y así tu ejecutable va a ser más liviano (eso creo), por que no va a compilar el mismo código de la misma unidad más de una vez.

Citar
¿es obligatorio insertar en el fichero miClase.cpp la directiva #include <miClase.h>?

Si, si tienes funciones declaradas en el .cpp que están definidas en el .h , y además estás llamando desde otra unidad.

Espero haber ayudado.
Título: Re: Cabecera en ficheros .h y .cpp
Publicado por: paranoiamaria en Jueves 24 de Julio de 2008, 11:34
Muchas gracias por la respuesta, ha sido de gran utilidad.

Un Saludo