Eu sou uma espécie de iniciante em desenvolvimento de software em larga escala em C ++ e estava pensando no lado do design.
Eu estava lendo esta pergunta e pensei que, em geral, uma vez que passamos por definições constantes e outros assuntos triviais, os arquivos de cabeçalho C ++ são apenas definições de API :
Eles definem o que outros programadores (ou você, de outros módulos) poderão usar (classes, funções públicas), mas nenhuma classe ou função privada deve ser definida nela. É como se o arquivo de cabeçalho definisse as abstrações (interfaces ...) e o arquivo de origem as implementasse. Depois que o arquivo de origem é compilado, os detalhes da implementação são ocultados e permanecem os cabeçalhos disponíveis ao público que definem o que o módulo pode fazer.
Achei que essa visão da separação do cabeçalho / arquivo de origem era muito mais fácil de entender e seguir do que as explicações usuais, já que você pode pensar "seria XXX
um material de API disponível ao público, ou é um detalhe de fabricação de linguiça a ser escondido em um arquivo de origem não revelado? "
Meu modelo mental de arquivos de cabeçalho está aproximadamente correto? Do que eu senti falta?