Ir para conteúdo
Fórum Script Brasil

abc123

Membros
  • Total de itens

    1
  • Registro em

  • Última visita

Sobre abc123

abc123's Achievements

0

Reputação

  1. Ola, estou com um trabalho da faculdade para fazer e preciso implementar um diagrama UML com herancas: Meu problema é o seguinte quando implemento a Classe Crianca ela possui um atributo do tipo Adulto, e a classe Adulto possui um atributo do tipo Crianca. O que ocorre é no momento da compilacao parece que se defino antes a Classe Crianca o compilador acusa que Adulto não esta definido( imagino que isso ocorra devido o compilador compilar linha-a-linha e como a Classe Crianca foi definida primeiro ainda não há um registro da Classe Adulto. Se inverto a ordem de inclusão o compilador da o mesmo problema acusando que crianca ainda não está definido. Então o que fazer? Segue abaixo o cabeçalho simples do meu codigo sem funcoes da logica de vendas implementadas! #ifndef USUARIO_H #define USUARIO_H #include <string> #include <iostream> using std::string; using namespace std; namespace Entities{ //----------------------------- Classe-base usuario ----------------------------------- class Usuario{ protected: int id_; string nome_; int idade_; float saldo_; public: //Construtor padrão Usuario(); //Cria novo usuario //Pre-Condicao: não pode ser instanciado como Usuario Usuario(int id,string nome,int idade,float saldo); //Retorna ID do usuario int getId(); //Retorna nome do usuario string getNome(); //Retorna idade do usuario int getIdade(); //Retorna saldo do usuario float getSaldo(); //Modifica saldo do usuario void setSaldo(float valor); //Imprime dados do Usuario //Funcao virtual pura -> define Usuario como classe abstrata virtual void toString() = 0; }; //----------------------------- Classe Adulto ----------------------------------- class Adulto : public Usuario{ protected: Crianca *dependentes_; int numDependentes_; public: //Cria novo usuario adulto Adulto(); //Cria novo usuario com atributos Adulto(int id,string nome,int idade,float saldo); //Cria adulto co dependentes Adulto(int id,string nome,int idade,float saldo, Crianca dependentes[], int numDependentes); //Torna Adulto uma classe instanciavel void toString() override; //Adiciona dependente void addDependente(Crianca *dependente); }; //----------------------------- Classe Crianca ----------------------------------- class Crianca: public Usuario{ private: Adulto *responsavel_; public: //Construtor padrão Crianca(); //Cria novo usuario Crianca Crianca(int id,string nome,int idade,float saldo,Adulto *responsavel); //Sobrescreve funcao toString e permite que Crianca seja uma classe instanciavel //Imprime na tela dados da crianca void toString() override; }; //----------------------------- Classe Idoso ----------------------------------- class Idoso : public Adulto{ public: //Cria um novo Idoso Idoso(); //Cria um novo idoso pre definiddo Idoso(int id,string nome,int idade,float saldo); }; } #endif //USUARIO_H
×
×
  • Criar Novo...