Explicación del concepto
Esta lección trata sobre la estructura. En lugar de colocar cada detalle en un solo archivo, observarás una pequeña división entre declaración e implementación y pensarás por qué eso importa a medida que un programa crece. El objetivo no es memorizar las reglas del sistema de compilación, sino comprender las responsabilidades: dónde pertenecen las interfaces, dónde pertenece el comportamiento y cómo esa separación te ayuda a probar, reutilizar y cambiar código con menos confusión. Al final, deberías poder describir un diseño simple de C++ donde cada archivo tiene una tarea clara y todo el ejemplo sigue siendo fácil de navegar.
Dónde poner el código
- Comienza con variables y entradas. Mantén explícitos los `includes`, la función `main` y los tipos de datos.
- Agrega la lógica de procesamiento en la sección central.
- Finaliza con la salida y una validación rápida.
Referencia de comandos
- Describe el propósito del archivo de encabezado en una oración antes de cambiar cualquier código.
- Modifica el nombre o el comportamiento de la función una vez, luego actualiza la declaración y la definición de manera consistente.
- Crea un pequeño archivo `main` mentalmente o en papel que llamaría a `add(2, 3)`.
- Registra una razón por la que separar la interfaz de la implementación se vuelve útil en proyectos más grandes.
Guía paso a paso
- Lee ambas partes del ejemplo e identifica qué archivo expone la interfaz.
- Explica qué se rompería si la declaración y la definición ya no coincidieran.
- Haz un pequeño cambio, como renombrar la función o ajustar la expresión de retorno, y mantén los archivos sincronizados.
- Verifica el diseño nuevamente y confirma que cada archivo aún tiene una responsabilidad clara.
- Finaliza con una breve lista de verificación que cubra la nomenclatura, la consistencia y la facilidad de reutilización.
Ejercicios prácticos
- Agrega una segunda declaración y definición de función para `subtract` manteniendo la misma estructura de archivos.
- Escribe un ejemplo simple de `main.cpp` que incluya el encabezado e imprima el resultado de una llamada a función.
- Refactoriza la nomenclatura para que el archivo de utilidad suene más específico a su propósito.
Retos de código
- Compara este enfoque de archivos divididos con una versión de archivo único y explica cuál es más fácil de mantener a medida que crecen las funcionalidades.
- Diseña un pequeño módulo de utilidad con dos funciones relacionadas y mantén la interfaz limpia y mínima.
Mini tareas de práctica
- Agrega un prototipo de función adicional al encabezado.
- Escribe un resumen de una línea sobre lo que logra esta organización de código.
- Verifica que la declaración y la definición usen el mismo nombre y orden de parámetros.
Error común
Skipping input validation or mixing logic/output in one unstructured block.
Mini reto de la vida real
Build a small real-life example for this lesson topic using 3 clear steps: input, process, output.