Creo que se envío a medias jeje, a ver yo lo suelo almacenar en carpetas en include los .h que solo contienen las cabeceras de las funciones con información de doxygen u otro tipo de comentarios, en src los .cpp que tienen las implementaciones, en obj los ficheros .o que están semicompilados, en bin los ejecutables, en lib los .a que basicamente son agrupaciones de .h, y en doc los ficheros de documentación que genera doxygen o alguna guia informe etc..<br>

Luego con un fichero Makefile genero todo el proyecto, te incluyo un fichero makefile por si quieres ver como es, todo esto esta para linux con g++, para ejecutar el Makefile se ejecuta el comando make dentro de la carpeta donde este el fichero Makefile<br>

<br><div class="gmail_quote">El 25 de enero de 2010 17:43, Jose Cabrera <span dir="ltr"><<a href="mailto:josmaca@gmail.com" target="_blank">josmaca@gmail.com</a>></span> escribió:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">

Pues a parte de lo que has dicho, yo crearia un fichero makefile, que es un fichero al estilo macro donde almacenas las precompilaciones de cada parte que vas creando, de forma que cuando generas el proyecto global solo se recompila lo que hayas modificado, tambien te aconsejo que guardes los .h en una carpeta (se suele llamar incl<br>



<br><div class="gmail_quote">El 25 de enero de 2010 12:58, Vicent <span dir="ltr"><<a href="mailto:vginer@gmail.com" target="_blank">vginer@gmail.com</a>></span> escribió:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">

<div><div></div><div>

Hola a todos.<div><br></div><div>[ Duda 1: Estructurar el código en ficheros ]</div><div><br></div><div>No tengo experiencia en realizar grandes proyectos en C++. De hecho, hasta ahora todos mis proyectos constaban de un único fichero ".cpp" (la extensión estándar en Visual C++ para código fuente en C++) que contenía todo lo siguiente:</div>





<div><br></div><div>- Includes (primero los generales, luego los hechos por terceras personas, y luego los propios)</div><div>- Declaraciones "using" (por ejemplo:  using std::cin ;)</div><div>- Definición de constantes globales vía "#define" (por ejemplo: #define PRECISION 0.00000000000001)</div>





<div>- Declaración y definición de variables globales (aunque esto lo he trasladado a un archivo externo, como comento en mi segunda duda, más adelante)</div><div>- Declaración "forward" de estructuras y clases</div>





<div>- "Prototipos" de rutinas</div><div>- Definición de clases y estructuras</div><div>- Rutina principal</div><div>- Definición de rutinas</div><div><br></div><div>Entiendo que tenerlo todo en un único fichero NO es lo normal en un proyecto de tamaño medio, o medio-grande, etc.</div>





<div><br></div><div>Mi pregunta es: si quiero separar el código en diversos ficheros, ¿cómo lo hago?</div><div><br></div><div>Por ejemplo, si quiero dejar en el archivo principal LO MÍNIMO, entiendo que debería tener:</div>





<div><br></div><div>- Uno o varios archivos de cabecera (con extensión ".h") que contengan la declaración "forward" y definición de estructuras y clases, así como los "prototipos" de las rutinas.</div>





<div>- Archivos ".cpp" con la definición de las rutinas.</div><div><br></div><div>Y dejaría en el archivo principal todos los "includes" (ahora con nuevos "includes" de los archivos ".h" que he creado), y quizás la declaración de constantes globales, etc. y la rutina principal.</div>





<div><br></div><div>Mi duda es en realidad esta: además de estructurar el proyecto en esta serie de archivos, ¿he de hacer algo más para que todo funcione? Es decir, cuando le dé a "compilar" todo, ¿sabe el compilador que las funciones declaradas en #include "mis funciones.h" están en "mis_funciones.cpp", o he de hacer algo más?</div>





<div><br></div><div>¿Sugerencias, ideas, pistas, trucos... relacionados con todo esto?</div><div><br></div><div>Sé que es una pregunta de novato; espero que podáis ayudarme a tenerlo todo más claro...</div><div><br></div>





<div><br></div><div>[ Duda 2: Archivo ".in" ]</div><div><br></div><div>Y después, una duda tonta, pero por si acaso:</div><div><br></div><div>En la versión "de andar por casa" de una aplicación "de consola" (de "pantalla negra", quiero decir) que estoy haciendo, he organizado la "entrada" de datos de la manera siguiente:</div>





<div><br></div><div>Creo un fichero "<a href="http://datos_iniciales.in" target="_blank">datos_iniciales.in</a>" donde declaro unas variables globales y les asigno un valor. El "usuario" (yo mismo, de momento) deberá entrar a ese fichero y modificar el valor de las variables cuando quiera cambiar esos datos iniciales.</div>





<div><br></div><div>Después, pongo esto en el código principal:</div><div><br></div><div>#include "<a href="http://condiciones_iniciales.in" target="_blank">condiciones_iniciales.in</a>"</div><div><br></div><div>



De momento me vale así. Cuando quiera hacer una batería grande de pruebas, cambiando con mucha frecuencia el valor de los datos iniciales, ya lo haré de otra manera.</div>

<div><br></div><div>Mi pregunta es: ¿es válido usar ".in" como extensión de fichero? Mi idea es, internamente, nombrar con extensión ".in" los ficheros que contienen datos de entrada, y asignar extensión ".out" a los ficheros donde volcaré datos, resultados, salidas, etc.</div>





<div><br></div><div>Entiendo que sí es válido, porque creo haber leído en algún sitio que, en el fondo, la extensión de los ficheros de los que hacemos "include" le da un poco igual a C++.</div><div><br></div><div>





Gracias de antemano por vuestras respuestas.</div><div><br></div><div>--</div><div>Vicent</div>
<br></div></div>_______________________________________________<br>
Lista de correo Cconclase <a href="mailto:Cconclase@listas.conclase.net" target="_blank">Cconclase@listas.conclase.net</a><br>
<a href="http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net" target="_blank">http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net</a><br>
Bajas: <a href="http://listas.conclase.net/index.php?gid=2&mnu=FAQ" target="_blank">http://listas.conclase.net/index.php?gid=2&mnu=FAQ</a><br></blockquote></div><br>
</blockquote></div><br>