Curso Programação Orientada à Objetos

Arquivos Cabeçalho

Página do Curso 37 min Texto por
User Image
Thiago Nepomuceno

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