Ir para o conteúdo
ber0x88

Classes em Ficheiros separados

Mensagens Recomendadas

ber0x88

Boa tarde,

Segue o seguinte código:

test.cpp

#include "MyClass.h"
#include "MyClass.cpp"
#include <iostream>

int main(){
   MyClass a;
}

Cria o objecto "a" referente há classe MyClass.

Output:

Constr

Dest

MyClass.h onde está declarado a função do construtor e destrutor

#ifndef MYCLASS_H
#define MYCLASS_H


class MyClass
{
   public:
       MyClass();
       ~MyClass();
   protected:
   private:
};

#endif // MYCLASS_H

MyClass.cpp função do construtor e destrutor

#include "MyClass.h"
#include <iostream>
using namespace std;


MyClass::MyClass()
{
   cout << "constr" << endl;
}

MyClass::~MyClass()
{
   cout << "Dest" << endl;
}

Tenho declarado MyClass.cpp em test.cpp e só assim é que funciona. Caso comente a linha que faz " #include "MyClass.cpp" " e fique apenas incluído o MyClass.h ocorre o seguinte erro:

/home/user/Documents/workspace/test.o||In function `main':|
test.cpp|| undefined reference to `MyClass::MyClass()'|
test.cpp|| undefined reference to `MyClass::~MyClass()'|
||=== Build failed: 2 error(s), 0 warning(s) (0 minute(s), 0 second(s)) ===|

Caso inclua só o MyClass.cpp o programa também executa sem erros.

Não deveria executar normalmente só incluindo o Header?

Desde já obrigado :P


"Impossível é apenas uma grande palavra usada por gente fraca que prefere viver no mundo como está em vez de usar o poder que tem para mudá-lo."

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
ber0x88

nunca se faz include dos ficheiros .cpp

Foi só para experimentar se funcionava.

Já resolvi... por caricato que seja fechei o Codeblocks e voltei a abrir o projeto e já estava tudo a funcionar. :D


"Impossível é apenas uma grande palavra usada por gente fraca que prefere viver no mundo como está em vez de usar o poder que tem para mudá-lo."

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.