C/Visual C - incluir ficheros .h (vs.NET)

 
Vista:

incluir ficheros .h (vs.NET)

Publicado por Ferran (5 intervenciones) el 28/06/2004 13:22:53
bueno, tengo un par de preguntas de novato:
lo primero es: programamos un clase y como dios manda (con su .cpp y su .h para la cabecera), aunque tambien puede ser cualquier otra cosa. Para evitar errores de enlazar, sirve la directiva
# pragma once
o es mejor las tipicas #ifndef / #define / #endif

Segundo: las cabeceras .h que incluyo en mis codigos fuente, van dentro de los #ifndef / #endif ?

Existe alguna regla de oro, o truco para que no me de los errores de simbolo externo no resuelto?

Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:incluir ficheros .h (vs.NET)

Publicado por chuidiang (677 intervenciones) el 28/06/2004 15:39:53
Lo del ifndef debes ponerlo en el fichero de cabecera de la clase y todo lo que definas ahi debe estar dentro.
#ifndef _COSA
#define _COSA
... resto del fichero
#endif

Esto evita que al hacer includes que hacen includes de otros includes obtengas el error de cosas definidas dos veces.

Me gusta mas el ifndef que el pragma, porque ifndef es standard de C/C++ mientras que los pragmas dependen mucho del compilador.

En cuanto a los errores de simbolo externo, no tienen nada que ver con los ifndef y demás. Lo que hay que hacer es poner en la orden de compilado todas las librerias en la forma adecuada, asegurandose que está todo correctamente compilado.

En http://www.geocities.com/chuidiang/herramientas/librerias.html tienes algo de esto , pero para linux. Los conceptos son similares.

Se bueno.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:incluir ficheros .h (vs.NET)

Publicado por Ferran (5 intervenciones) el 28/06/2004 19:43:25
Pero lo que no me has comentado es si los include se hacen antes o despues de los ifndef

Gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:incluir ficheros .h (vs.NET)

Publicado por chuidiang (677 intervenciones) el 29/06/2004 10:02:53
Si todos los ficheros .h estan bien hechos de esta manera, da igual hacer antes o despues los include, no deberías tener errores de ninguna de las dos formas.
De todas formas, por eficiencia en el compilado, es mejor poner los includes dentro del ifndef. Si a.h incluye a b.h y a.h ya ha sido leido por primera vez, no tiene sentido cargar b.h una segunda vez para descartarlo inmediatamente después.

Se bueno.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar