Como na linguagem C, C ++ faz amplo uso da definição de arquivos de cabeçalhos6.2, usualmente com nome com o sufixo ``.h'' e incluídos no início de arquivos de código fonte com a diretiva #include.
No caso de C ++, cabeçalhos são usados para conter declarações de classes -- usualmente, um arquivo para cada classe. Em geral, definições dos métodos não são incluídas em cabeçalhos, mas sim mantidas em um arquivo à parte (o arquivo de implementação, discutido na próxima seção).
Considere o exemplo apresentado no
Capítulo , com definições das
classes vehicle, car e truck. Pela
estratégia de empacotamento, três arquivos de cabeçalho
seriam criados -- por exemplo, vehicle.h, car.h e
truck.h, respectivamente. Mais ainda, os cabeçalhos
car.h e truck.h devem incluir a linha
A observação acima revela um problema potencial. Em uma aplicação que inclua dois mais dos cabeçalhos acima, um erro de compilação seria gerado por estar definindo a classe base mais de uma vez. A solução para evitar este problema, adotada também em ANSI-C, é usar as diretivas de pré-processamento #define e #ifdef juntamente com uma ``variável de controle'': quando um cabeçalho é incluído pela primeira vez, a variável de controle não estará definida; assim, o segmento do arquivo de cabeçalho com a definição da classe é incluído e a variável de controle é definida. Caso contrário, a variável de controle já estará definida, e o restante do arquivo de cabeçalho (a declaração da classe) pode ser ignorado.
O exemplo abaixo ilustra a utilização desta técnica na codificação do cabeçalho vehicle.h:
indentation