Menu
Coddy logo textTech

Implementação da Conta

Parte da seção Programação Orientada a Objetos do Journey de C da Coddy. Lição 23 de 61.

challenge icon

Desafio

Fácil

Agora é hora de dar vida à sua Conta Bancária! Você já criou a interface pública em account.h; agora vai implementar os componentes internos ocultos que fazem tudo funcionar.

Dando continuidade ao seu trabalho anterior, você adicionará o arquivo de código-fonte que contém a definição secreta da struct e as implementações reais das funções. É aqui que o encapsulamento realmente acontece: o corpo da struct existe apenas no arquivo .c, completamente invisível para qualquer pessoa que use sua biblioteca.

Você trabalhará com três arquivos:

  • account.h: Seu header existente com a declaração do tipo opaco Account e os protótipos das funções create_account e destroy_account. Mantenha suas diretivas de proteção contra inclusão múltipla com ACCOUNT_H.
  • account.c: É aqui que a mágica acontece. Defina a struct Account real com dois membros ocultos: int id (o identificador da conta) e double balance (começando em 0.0 para novas contas). Implemente seu construtor para alocar memória, definir o ID a partir do parâmetro e inicializar o saldo como zero. Implemente seu destrutor para liberar a memória corretamente.
  • main.c: Teste sua implementação criando uma conta e confirmando que ela funciona. Como os membros da struct estão ocultos, você não pode examiná-los diretamente, mas pode verificar se o ciclo de vida funciona corretamente.

Você receberá uma entrada: o ID da conta (um inteiro) a ser atribuído à nova conta.

Em seu arquivo principal, crie uma conta com o ID fornecido, exiba uma mensagem de confirmação mostrando o ID, depois destrua a conta e confirme a limpeza.

Exiba a saída neste formato:

Account 1001 created
Account destroyed

Em que 1001 é substituído pelo ID real recebido como entrada.

Lembre-se: seu main.c não pode acessar account->id ou account->balance diretamente. Esses membros ficam completamente ocultos dentro de account.c. Por enquanto, você usará apenas o ID da entrada na sua mensagem de saída. Nas próximas lições, você adicionará funções getter para recuperar os dados ocultos corretamente.

Experimente você mesmo

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

int main() {
    int account_id;
    // TODO: leia account_id da entrada
    scanf("%d", &account_id);

    // TODO: crie uma conta usando create_account() e imprima "Account <id> created"

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

    return 0;
}

Todas as lições de Programação Orientada a Objetos

Pratique por conta própria: Compilador de C online