Menu
Coddy logo textTech

Implementación de la cuenta

Parte de la sección Object Oriented Programming del Journey de C de Coddy — lección 23 de 61.

challenge icon

Desafío

Fácil

¡Ahora es el momento de dar vida a tu Cuenta Bancaria! Ya has creado la interfaz pública en account.h; ahora implementarás los componentes internos ocultos que la hacen funcionar.

Basándote en tu trabajo anterior, añadirás el archivo de origen que contiene la definición secreta de la estructura y las implementaciones reales de las funciones. Aquí es donde ocurre verdaderamente el encapsulamiento: el cuerpo de la estructura existe solo en el archivo .c, completamente invisible para cualquiera que use tu librería.

Trabajarás con tres archivos:

  • account.h: Tu cabecera existente con la declaración del tipo opaco Account y los prototipos de función para create_account y destroy_account. Mantén tus guardas de inclusión con ACCOUNT_H.
  • account.c: Aquí es donde ocurre la magia. Define el struct Account real con dos miembros ocultos: int id (el identificador de la cuenta) y double balance (comenzando en 0.0 para cuentas nuevas). Implementa tu constructor para asignar memoria, establecer el ID a partir del parámetro e inicializar el saldo a cero. Implementa tu destructor para liberar la memoria correctamente.
  • main.c: Prueba tu implementación creando una cuenta y confirmando que funciona. Dado que los miembros de la estructura están ocultos, no puedes mirar dentro, pero puedes verificar que el ciclo de vida funciona correctamente.

Recibirás una entrada: el account ID (un entero) para asignar a la nueva cuenta.

En tu archivo principal, crea una cuenta con el ID proporcionado, imprime un mensaje de confirmación que muestre el ID, luego destruye la cuenta y confirma la limpieza.

Imprime la salida en este formato:

Account 1001 created
Account destroyed

Donde 1001 se reemplaza con el ID real que recibiste como entrada.

Recuerda: tu main.c no puede acceder a account->id o account->balance directamente; esos miembros están completamente ocultos dentro de account.c. Por ahora, solo usarás el ID de la entrada para tu mensaje de salida. En las próximas lecciones, añadirás funciones getter para recuperar los datos ocultos correctamente.

Pruébalo tú mismo

#include <stdio.h>
#include "account.h"

int main() {
    int account_id;
    // TODO: leer account_id de la entrada
    scanf("%d", &account_id);

    // TODO: crear una cuenta usando create_account() y mostrar "Account <id> created"

    // TODO: destruir la cuenta usando destroy_account() y mostrar "Account destroyed"

    return 0;
}

Todas las lecciones de Object Oriented Programming