Curso Programação Orientada à Objetos
Arquivos Cabeçalho
Em projetos C++ maiores, é comum dividir o código em múltiplos arquivos para melhorar a organização, a modularização e o encapsulamento. Os arquivos de cabeçalho (header files) são uma parte fundamental dessa estrutura. A seguir, vamos explorar detalhadamente o que são esses arquivos, como e por que usá-los, as melhores práticas de organização e um exemplo prático utilizando uma classe Movie
com separação de interface (movie.hpp
) e implementação (movie.cpp
).
O que são arquivos de cabeçalho e para que servem?
Arquivos de cabeçalho em C++ (normalmente com extensões .h
ou .hpp
) são arquivos que contêm declarações de elementos do programa, como classes, funções, constantes e tipos. Eles funcionam como uma interface: descrevem o quê existe (assinaturas de funções, definição de classes etc.), mas geralmente não contêm a implementação detalhada (como essas funções realizam suas tarefas). A função principal de um header file é permitir que múltiplos arquivos fonte (.cpp) compartilhem declarações comuns sem duplicação de código.
Quando você compila um programa C++, cada arquivo .cpp
é compilado de forma independente (cada um se torna uma unidade de compilação separada). O compilador não sabe nada sobre o código em outros .cpp
durante essa etapa. Por isso, se um arquivo .cpp
usa uma função ou classe definida em outro lugar, ele precisa conhecer antecipadamente a declaração dessa função ou classe. É aí que entram os arquivos de cabeçalho: em vez de reescrever as declarações em cada arquivo fonte, coloca-se a declaração em um header e usa-se #include
para inseri-lo onde for necessário.
A seguir, veja um exemplo simples que ilustra como usar um arquivo de cabeçalho para declarar uma função que é implementada em outro arquivo:
soma.hpp (Declaração da função)
#ifndef SOMA_HPP
#define SOMA_HPP
// Declaração da função que soma dois números inteiros
int soma(int a, int b);
#endif // SOMA_HPP