[C con Clase] Archivo ".in" y estructurar el código en ficheros

Vicent vginer en gmail.com
Lun Ene 25 12:58:52 CET 2010


Hola a todos.

[ Duda 1: Estructurar el código en ficheros ]

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:

- Includes (primero los generales, luego los hechos por terceras personas, y
luego los propios)
- Declaraciones "using" (por ejemplo:  using std::cin ;)
- Definición de constantes globales vía "#define" (por ejemplo: #define
PRECISION 0.00000000000001)
- 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)
- Declaración "forward" de estructuras y clases
- "Prototipos" de rutinas
- Definición de clases y estructuras
- Rutina principal
- Definición de rutinas

Entiendo que tenerlo todo en un único fichero NO es lo normal en un proyecto
de tamaño medio, o medio-grande, etc.

Mi pregunta es: si quiero separar el código en diversos ficheros, ¿cómo lo
hago?

Por ejemplo, si quiero dejar en el archivo principal LO MÍNIMO, entiendo que
debería tener:

- 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.
- Archivos ".cpp" con la definición de las rutinas.

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.

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?

¿Sugerencias, ideas, pistas, trucos... relacionados con todo esto?

Sé que es una pregunta de novato; espero que podáis ayudarme a tenerlo todo
más claro...


[ Duda 2: Archivo ".in" ]

Y después, una duda tonta, pero por si acaso:

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:

Creo un fichero "datos_iniciales.in" 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.

Después, pongo esto en el código principal:

#include "condiciones_iniciales.in"

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.

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.

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++.

Gracias de antemano por vuestras respuestas.

--
Vicent
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20100125/c9282293/attachment.html>


Más información sobre la lista de distribución Cconclase