C ++ convenção ficheiro de cabeçalho
-
06-07-2019 - |
Pergunta
Eu estou trabalhando em um pequeno jogo usando C ++, e eu usei gerador de classe do Eclipse CDT. É criado um arquivo .h com as definições de classe e um arquivo .cpp que os métodos de corpo-less incluídos para a referida classe.
Então, se eu tivesse seguido o modelo, eu tenho um arquivo .cpp preenchido com as declarações de métodos, e um arquivo .cpp com corpo de método. No entanto, não posso incluir um arquivo .cpp dentro de outro.
Então, o que é a convenção em C ++ com aulas e incluir arquivos? O que fiz foi preencher os corpos de método direito sob a declaração de classe no arquivo .h, e apagou o arquivo .cpp.
Solução
Você não tem que incluir o arquivo .cpp. Incluindo o arquivo .h é tudo o que preciso. meios .h cabeçalho, isto é, tudo o que deve ter é definições função / objecto. As implementações reais ir no arquivo .cpp de mesmo nome. O vinculador irá lidar com endireitar-lo para você.
O arquivo de cabeçalho contém declarações (também conhecido como protótipo). Inclusão do cabeçalho permite o know programa "Declaro algo que se parece com isto existe".
O usuário de cabeçalhos nos salva o esforço de declarar métodos em todo o lugar em nossos arquivos de código -. Nós fazê-lo apenas uma vez, em seguida, importar o arquivo
A / CPP / C arquivo .cc inclui o definição -. Que diz ao programa que a função faz
Você não tem que "incluir" arquivos .c porque é isso que o compilador faz -. Compila todos os seus arquivos .c em código de máquina
Outras dicas
Mais uma coisa que você pode fazer é ao criar um arquivo de cabeçalho é usar o pré-processador diretiva ifdef e endif. Isso vai evitar que seu ser arquivo de cabeçalho incluído várias vezes. Esta é uma prática padrão que eu uso sempre que eu criar um novo arquivo de cabeçalho.
Eu não estou muito certo eu entendo. Os arquivos de cabeçalho define o que a classe é e pode fazer, e você incluir isso em quaisquer arquivos de origem que precisam usar a classe.
Os implementos de arquivo de origem como a classe faz a sua ação.
No entanto, você pode incluem um .cpp
em outro (você pode incluir qualquer coisa em qualquer coisa), mas você não precisa.