Configuração do Projeto
Parte da seção Object Oriented Programming do Journey de C da Coddy — lição 22 de 61.
Desafio
FácilVamos começar a construir sua biblioteca de Conta Bancária! Neste primeiro passo, você criará a interface pública — o arquivo de cabeçalho que define quais operações existem sem revelar nenhum detalhe de implementação.
Você criará dois arquivos para estabelecer a base do projeto:
account.h: Seu arquivo de cabeçalho público. É isso que os usuários da sua biblioteca irão incluir. Declare um tipoAccountopaco usando uma declaração de tipo incompleta — sem o corpo da struct, apenas uma declaração antecipada (forward declaration) que informa ao compilador que o tipo existe. Em seguida, declare os protótipos das funções paracreate_account(recebe um inteiro para o ID da conta e retorna um ponteiro para Account) edestroy_account(recebe um ponteiro para Account e não retorna nada). Não se esqueça dos include guards usando o símboloACCOUNT_H.main.c: Um arquivo de teste simples para verificar se o seu cabeçalho compila corretamente. Inclua seu cabeçalho e imprima uma mensagem confirmando que a interface está pronta. Como ainda não implementamos as funções, apenas imprima uma mensagem de confirmação — a implementação real virá na próxima lição.
O ponto principal aqui é que seu cabeçalho revela o que o módulo Account pode fazer (criar e destruir contas) sem mostrar como ele armazena os dados internamente. Qualquer pessoa que inclua account.h saberá que um tipo Account existe e quais funções estão disponíveis, mas não poderá acessar nenhum campo interno — porque você não definiu nenhum no cabeçalho!
Seu arquivo principal deve gerar a saída:
Account interface readyIsso prepara o terreno para o sistema completo de Conta Bancária que você construirá ao longo das próximas lições. O cabeçalho que você criar agora crescerá para incluir deposit, withdraw e get_balance conforme você avança no projeto.
Experimente você mesmo
#include <stdio.h>
#include "account.h"
int main() {
// TODO: Imprimir uma mensagem confirmando que a interface está pronta
// A mensagem deve ser: "Account interface ready"
return 0;
}
Todas as lições de Object Oriented Programming
1Fundamentos da Programação Modular
Arquivos de CabeçalhoInclude GuardsArquivos-FonteFunções EstáticasRecapitulação: Calculadora Modular4Encapsulamento
Conceito de Ponteiros OpacosDefinindo Structs OpacasGetters e SettersValidação em SettersRecapitulação: Caixa Secreta2Objetos e Métodos
Structs como ObjetosO Ponteiro 'Self'Const CorrectnessPonteiro vs ValorMétodos AuxiliaresRecapitulação: Point Manager5Projeto: Conta Bancária Simples
Configuração do ProjetoImplementação da Conta3Ciclo de Vida de Objetos
Padrão de ConstrutorPadrão de DestrutorInicialização na StackCópia ProfundaRecapitulação: String Wrapper6Herança via Composição
Incorporação de StructsA Regra do Primeiro MembroAcessando Membros PaiUpcastingRecapitulação: Hierarquia de Formas9Projeto: Desenhador de Formas
Visão Geral do ProjetoImplementação do Círculo