Qual a função do arquivo header?
A função do Header é estrutural. Explico:
Em C++, os elementos dos programas (classes, funções, variáveis...) devem ser declarados antes de serem utilizados no código. Não podemos, por exemplo, fazer o seguinte:
Sem antes declarar o a:
A declaração serve para dizer ao programa qual o tipo de dado daquela variável e para alocar seu espaço em memória. É importante saber também que qualquer elemento de programa utilizado em um arquivo c++ deve estar, direta ou indiretamente, declarado neste arquivo. "Como assim, Daniel?" Assim, diretamente:
Indiretamente:
Dito isto vamos assimilar a compilação. Quando você compila um programa em c++ cada arquivo é compilado separadamente em uma unidade de compilação. Enquanto compila um arquivo teste1.cpp, por exemplo, o compilador não sabe quais elementos estão declarados no arquivo teste2.cpp, também como exemplo. Portanto, se no seu código existe uma variável global ela deve ser declarada em todos os arquivos que a utilizarão, qualquer ruído nessas declarações pode trazer problemas à aplicação.
É ai que entra o arquivo header!!! Por convenção você faz as declarações no arquivo header e utiliza a direitiva #include nos arquivos que necessitam do elemento. Dessa maneira a diretiva copia o arquivo header no arquivo cpp antes de compilá-lo.
Abraços!
A função do Header é estrutural. Explico:
Em C++, os elementos dos programas (classes, funções, variáveis...) devem ser declarados antes de serem utilizados no código. Não podemos, por exemplo, fazer o seguinte:
C++:
a = 30;
C++:
int a; //Declaração
a = 30; //Uso
C++:
int a; //Declaração
a = 30; //Uso
C++:
#include "classe.h" // header onde as variáveis são declaras
É ai que entra o arquivo header!!! Por convenção você faz as declarações no arquivo header e utiliza a direitiva #include nos arquivos que necessitam do elemento. Dessa maneira a diretiva copia o arquivo header no arquivo cpp antes de compilá-lo.
Abraços!