Configuración del proyecto
Parte de la sección Object Oriented Programming del Journey de C de Coddy — lección 22 de 61.
Desafío
Fácil¡Comencemos a construir tu librería de Cuenta Bancaria! En este primer paso, crearás la interfaz pública: el archivo de cabecera que define qué operaciones existen sin revelar ningún detalle de implementación.
Crearás dos archivos para establecer la base del proyecto:
account.h: Tu archivo de cabecera público. Esto es lo que incluirán los usuarios de tu librería. Declara un tipoAccountopaco utilizando una declaración de tipo incompleta: sin cuerpo de struct, solo una declaración anticipada que le indica al compilador que el tipo existe. Luego, declara los prototipos de función paracreate_account(toma un entero para el ID de la cuenta y devuelve un puntero Account) ydestroy_account(toma un puntero Account y no devuelve nada). No olvides los protectores de inclusión (include guards) utilizando el símboloACCOUNT_H.main.c: Un archivo de prueba simple para verificar que tu cabecera compila correctamente. Incluye tu cabecera e imprime un mensaje confirmando que la interfaz está lista. Dado que aún no hemos implementado las funciones, simplemente imprime un mensaje de confirmación; la implementación real vendrá en la próxima lección.
La idea clave aquí es que tu cabecera revela qué puede hacer el módulo Account (crear y destruir cuentas) sin mostrar cómo almacena los datos internamente. Cualquiera que incluya account.h sabrá que existe un tipo Account y qué funciones están disponibles, pero no podrá acceder a ningún campo interno, ¡porque no has definido ninguno en la cabecera!
Tu archivo principal debería mostrar:
Account interface readyEsto prepara el escenario para el sistema completo de Cuenta Bancaria que construirás a lo largo de las próximas lecciones. La cabecera que crees ahora crecerá para incluir deposit, withdraw y get_balance a medida que progreses en el proyecto.
Pruébalo tú mismo
#include <stdio.h>
#include "account.h"
int main() {
// TODO: Imprime un mensaje confirmando que la interfaz está lista
// El mensaje debe ser: "Account interface ready"
return 0;
}
Todas las lecciones de Object Oriented Programming
1Fundamentos de programación modular
Archivos de cabeceraGuardas de inclusiónArchivos fuenteFunciones estáticasRepaso: Calculadora modular4Encapsulamiento
Concepto de punteros opacosDefinición de structs opacosGetters y SettersValidación en settersResumen: Caja secreta7Punteros a funciones
Declaración de punteros a funcionesLlamada a punteros a funcionesTypedef para punteros a funcionesPasar funciones como argumentosRepaso: Dispatch de calculadora10Contenedores genéricos
Repaso de punteros voidWrapper genéricoSwap genéricoComparación genéricaRepaso: Array genérico2Objetos y métodos
Structs como objetosEl puntero 'Self'Const CorrectnessPuntero vs. ValorMétodos auxiliaresResumen: Point Manager5Proyecto: Cuenta bancaria simple
Configuración del proyectoImplementación de la cuenta3Ciclo de vida de los objetos
Patrón ConstructorPatrón DestructorInicialización en StackCopia profundaResumen: String Wrapper6Herencia mediante composición
Incrustación de StructsLa regla del primer miembroAcceso a miembros padreUpcastingResumen: Jerarquía de formas9Proyecto: Dibujador de figuras
Descripción general del proyectoImplementación del círculo