Menu
Coddy logo textTech

Implementación de la cuenta

Parte de la sección Programación Orientada a Objetos del Journey de C de Coddy. Lección 23 de 61.

challenge icon

Desafío

Fácil

¡Ahora es el momento de darle vida a tu cuenta bancaria! Ya has creado la interfaz pública en account.h: ahora implementarás los componentes internos ocultos que hacen que funcione.

Basándote en tu trabajo anterior, añadirás el archivo de código fuente que contiene la definición secreta de la estructura y las implementaciones reales de las funciones. Aquí es donde la encapsulación ocurre de verdad: el cuerpo de la estructura existe únicamente en el archivo .c, completamente invisible para cualquiera que use tu biblioteca.

Trabajarás con tres archivos:

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

Recibirás una entrada: el ID de la cuenta (un entero) que se asignará a la nueva cuenta.

En tu archivo principal, crea una cuenta con el ID proporcionado, muestra un mensaje de confirmación con el ID, después destruye la cuenta y confirma la limpieza.

Muestra la salida con este formato:

Account 1001 created
Account destroyed

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

Recuerda: tu main.c no puede acceder directamente a account->id ni a account->balance. 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 próximas lecciones, añadirás funciones getter para recuperar correctamente los datos ocultos.

Pruébalo tú mismo

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

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

    // TODO: crea una cuenta usando create_account() e imprime "Account <id> created"

    // TODO: destroy the account using destroy_account() and print "Account destroyed"

    return 0;
}

Todas las lecciones de Programación Orientada a Objetos

Practica por tu cuenta: Compilador de C online