Configuração do Projeto
Parte da seção Programação Orientada a Objetos do Journey de C da Coddy. Lição 22 de 61.
Desafio
FácilVamos começar a criar sua biblioteca de contas bancárias! Nesta primeira etapa, 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 os alicerces do projeto:
account.h: seu arquivo de cabeçalho público. É esse arquivo que os usuários da sua biblioteca incluirão. Declare um tipo opacoAccountusando uma declaração de tipo incompleto: sem o corpo da estrutura, apenas uma declaração antecipada que informa ao compilador que o tipo existe. Em seguida, declare os protótipos das funçõescreate_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 das proteções contra inclusão múltipla usando o símboloACCOUNT_H.main.c: um arquivo de teste simples para verificar se o 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, basta imprimir uma mensagem de confirmação: a implementação propriamente dita virá na próxima aula.
O principal insight aqui é que seu cabeçalho revela o que o módulo Account pode fazer (criar e destruir contas) sem mostrar como ele armazena dados internamente. Quem incluir account.h saberá que existe um tipo Account e quais funções estão disponíveis, mas não poderá acessar nenhum campo interno, porque você ainda não definiu nenhum no cabeçalho!
Seu arquivo principal deve exibir:
Account interface readyIsso prepara o terreno para o sistema completo de contas bancárias que você desenvolverá nas próximas aulas. À medida que avançar no projeto, o cabeçalho criado agora será ampliado para incluir deposit, withdraw e get_balance.
Experimente você mesmo
#include <stdio.h>
#include "account.h"
int main() {
// TODO: Imprima uma mensagem confirmando que a interface está pronta
// A mensagem deve ser: "Account interface ready"
return 0;
}
Todas as lições de Programação Orientada a Objetos
1Fundamentos da Programação Modular
Arquivos de cabeçalhoProteções de inclusãoArquivos-fonteFunções estáticasRevisão: calculadora modular4Encapsulamento
Conceito de ponteiros opacosDefinindo structs opacasGetters e settersValidação em settersRevisão: caixa secreta2Objetos e métodos
Structs como objetosO ponteiro 'Self'Correção de constPonteiro vs. valorMétodos auxiliaresRevisão: Gerenciador de pontos5Projeto: Conta Bancária Simples
Configuração do ProjetoImplementação da Conta3Ciclo de vida do objeto
Padrão de construtorPadrão de destrutorInicialização da pilhaCópia profundaRevisão: wrapper de String6Herança por composição
Incorporação de structRegra do primeiro membroAcessando membros do tipo paiUpcastingRevisão: hierarquia de formas9Projeto: Desenhador de Formas
Visão geral do projetoImplementação do círculoImplementação do retânguloUso polimórficoContêiner de formasPratique por conta própria: Compilador de C online