2012-07-01 15 views
5

¿Debo #incluir todo lo que necesito en cada archivo de cabecera/cpp? Estoy trabajando en un cajero automático de motor de juego 2d (principalmente para la práctica) y al revisar mi código me doy cuenta de que repito cadena y vector en casi todos los archivos. ¿Es esto un problema y cómo lo manejo?Cómo usar #include en proyectos grandes?

Siempre he tenido la opinión de que cada clase o módulo que escribe debe pararse en sus dos patas, por así decirlo. Realmente disfruto de la programación genérica (estoy incluyendo mi propio lenguaje de scripts en el motor, con mi propio motor de scripts) pero también me doy cuenta de que podría causar muchos sobrecargas y confusión.

+0

Si hay '' ifdef's apropiados, incluir un encabezado varias veces no debería causar ningún problema. También tienes razón en el n. ° 2. –

+0

si desea crear un archivo de encabezado que incluya todos los comunes e incluya que en su lugar podría, pero yo no iría más allá. Y le advierto sobre no poner demasiado en ese archivo y/o incluir ese archivo en todos los ámbitos. – twain249

+0

Si está familiarizado con la programación genérica, puede sentir el "#include" en c/C++ inflexible e inseguro. Lo que debe hacer es familiarizarse con c/C++ y pensar en c/C++. :) – ciphor

Respuesta

5

Me limitaría a incluir <string> y <vector> solo cuando sea necesario.

En cuanto a asegurarse de que los archivos de encabezado individuales valen por sí solos, me gusta cómo la Guía de estilo de Google C++ se ocupa de include order. Básicamente, siempre liste la correspondiente foo.hpp incluya antes de que todas las otras incluyan en foo.cpp. De esta forma, sabemos que foo.hpp no esperará que se incluya algo antes y fallará si no está allí.

+0

Por una vez, bastante como la guía proporcionada por Google, eso es un cambio: p –

2

No es un problema. Debe incluir, en cada archivo, las dependencias mínimas absolutas, no más, pero no menos.

Cuestiones relacionadas