Array
(
)

Problema com definição de classe em C

Jonathan Bispo
   - 18 mai 2008

Sou iniciante em C++ e estou precisando de ajuda.

Peguei uma apostila de C++ na internet, incluse é uma apostila muito boa, e nela vem explicando tudo sobre POO com C++.

Tem um capítulo que fala sobre compilação de um programa dividido em vários arquivos. Diz o seguinte: ´podemos fazer a declaração de uma nova classe em um arquivo .h (cabeçalho), implementar essa classe em um segundo arquivo .cpp incluindo a #include ´nome_do_arquivo_h.h´ e utilizar essa classe em um programa qualquer, simplesmente incluindo include ´nome_do_arquivo_h.h´.

O problema é que quando crio uma nova classe, por exemplo, classe contador, e coloco somente sua declaração com seus dados e funções em um arquivo .h e deixo sua implementação em outro arquivo (.cpp) incluindo o include ´nome_do_arquivo_h.h´, o programa não compila.
Suponhamos que tenha a função incrementa na classe contador.
Quando tento compilar o programa o compiliador exibe a seguinte mensagem:

undefined reference ´contador::incrementa(void)´

Mas quando faço a declaração da classe e sua implementação no mesmo arquivo, seja .h ou .cpp, funciona perfeitamente. O problema é quando divido em dois arquivos.

Estou usando o Dev-C++ 4.9.9.2.

Alguém pode me ajudar?


Massuda
   - 19 mai 2008

O .H que declara a classe precisa também ser incluído no .CPP que implementa a classe via #include.