Ir para conteúdo
Fórum Script Brasil
  • 0

#include Recursivo


Guest - Leandro -

Pergunta

Guest - Leandro -

Estou tentando modelar um relacionamento entre duas classes: Pessoa e Conta.

Na classe Pessoa existe um vetor de contas e na classe Conta existe um objeto de Pessoa.

(Ainda não mexi muito com C/C++)

Porém, tentando compilar as classes, o compilador(Dev-C++) reclamava que, na classe Pessoa, ele não encontrava o tipo Conta e na classe Conta ele não encontrava o tipo Pessoa. Então, inseri na classe Pessoa: #include <Pessoa.h> e na classe Conta, inseri: #include <Conta.h>

Agora está dando pau de recursividade por causa dos #include. Como posso resolver os dois problemas, sem criar outros?

Obrigado.

Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0
Guest - Leandro -

Mas, e quanto a navegabilidade. Meu cliente deseja que a partir de qualquer conta eu possa obter o cliente que é o "dono" da conta. No nosso diagrama de classes (UML) a navegabilidade é para os dois lados.

Como posso fazer?

Link para o comentário
Compartilhar em outros sites

  • 0
Guest Ainda não deu.

Ainda não consegui. Mesmo com a sugestão do #ifndef.

Quando tento compilar a classe Teste.cpp (ver código a seguir), o seguinte erro aparece (No Borland C++):

Error E2303 Classe2.h 11: Type name expected

Error E2139 Classe2.h 11: Declaration missing ;

e (No Dev-C++):

in Classe2.h ISO C++ forbids declaration of `Classe1' with no type

in Classe2.h expected `;' before '*' token

Vejam o código das classes seguintes:

//---------- Arquivo Classe1.h

#ifndef Classe2_h

#define Classe2_h

#include "Classe2.h"

class Classe1

{

private:

int a,b ;

Classe2 * classe2;

public:

Classe1(){}

~Classe1(){}

int getAB();

};

inline int Classe1::getAB()

{

return(a+cool.gif;

}

#endif

//---------- Fim do arquivo Classe1.h

//---------- Arquivo Classe2.h

#ifndef Classe1_h

#define Classe1_h

#include "Classe1.h"

class Classe2

{

private:

int a,b ;

Classe1 * classe1;

public:

Classe2(){}

~Classe2(){}

int getAB();

};

inline int Classe2::getAB()

{

return(a+cool.gif;

}

#endif

//---------- Fim do arquivo Classe2.h

//---------- Arquivo Teste.cpp

#include "Classe1.h"

#include "Classe2.h"

int main(int numArgs, char * args[])

{

}

//---------- Fim do arquivo Teste.cpp

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      652k
×
×
  • Criar Novo...