Quebrando Programas Apart em C ++
O programador pode quebrar um único programa em arquivos de origem separado geralmente conhecidas como módulos. Estes módulos são compilados em código de máquina pelo compilador C ++ separadamente e depois combinadas durante o processo de compilação para gerar um único programa.
Estes módulos são também conhecidos por geeks compilador como unidades de tradução C ++. O processo de combinar módulos compilados separadamente em um único programa é chamado vinculação.
Quebrando programas em partes menores, mais manejáveis tem várias vantagens. Em primeiro lugar, quebrando um programa em módulos menores reduz o tempo de compilação. Muito grandes programas podem demorar um pouco.
Além disso, recompilar todo o código-fonte do projeto só porque uma ou duas linhas de mudar é extremamente dispendioso. É muito melhor para recompilar apenas o módulo que contém a alteração e, em seguida, voltar a ligar-lo em todos os módulos inalterados para criar um novo executável com a mudança. (Compilação geralmente leva mais tempo do que a ligação.)
Em segundo lugar, é mais fácil de compreender - portanto, mais fácil de escrever, testar e depurar - um programa que consiste de uma série de bem-pensamento-fora, mas quase independentes módulos, cada um dos quais representa um agrupamento lógico de funções. Um grande, módulo de fonte única completa de todas as funções que um programa pode usar rapidamente torna-se difícil de manter em linha reta.
O terceiro é o espectro tão apregoada de reutilização. Um módulo completo de funções reutilizáveis que podem ser ligados em futuros programas é mais fácil de documentar e manter. Uma mudança no módulo para corrigir alguns bugs é rapidamente incorporados em outros executáveis que usam esse módulo.
Finalmente, há a questão de trabalhar juntos como uma equipe. Dois programadores não podem trabalhar no mesmo módulo (pelo menos não muito bem). Uma abordagem mais fácil é atribuir um conjunto de funções contidas em um módulo para um programador, enquanto a atribuição de um conjunto diferente de funções em um módulo diferente a um segundo programador. Os módulos podem ser ligados em conjunto, quando pronto para o teste.