Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

gyba

Programação Orientada a Objetos C++

Recommended Posts

Olá!

Sou novato em Programação Orientada a Objetos e gostaria saber se alguém pode me indicar o(s) erro(s) neste código abaixo.

Obrigado!

 

#include <iostream>
#include <cstdlib>

using namespace std;

class Animais{
     protected:
         string nome;
         int idade;
         string raca;
      public:
          virtual void mostraNome();
          virtual string nome()=0;
          virtual void move()=0;
          virtual void come()=0;
}; 

      void Animais::mostraNome(){
           cout<<"Nome: "<<nome()<<endl;
                                }       

class Cavalo:public Animais{
     public:
          Cavalo(string nome, int idade, string raca);
          void move();
          void come();
          string nome();
};        

      Cavalo::Cavalo(string nome, int idade, string raca){}

       void Cavalo::move(){
               cout<<"Cavalo troteando"<<endl;
                     }
       void Cavalo::come(){
               cout<<"Cavalo comendo"<<endl<<endl;
                          }
       string Cavalo::nome(){
              return nome;
                          }   


class Gaviao:public Animais{
     public:
         Gaviao(string nome, int idade, string raca);
         void move();
         void come();
         string nome();
};          
         Gaviao::Gaviao(string nome, int idade, string raca){}

         void Gaviao::move(){
              cout<<"Gaviao voando"<<endl;
                    }
         void Gaviao::come(){
              cout<<"Gaviao comendo"<<endl;
                            }
         string Gaviao::nome(){
                return nome;
                              }

int main(){
   Animais *a;

   Cavalo c("Alazao", 25, "Manga_larga");
   a=&c;
   a->mostraNome();
   a->move();
   a->come();

   Gaviao g("Rico", 5, "Black");
   a=&g;
   a->mostraNome();
   a->move();
   a->come();

   cin.get();
}


Compartilhar este post


Link para o post
Compartilhar em outros sites

       void Animais::mostraNome(){
           cout<<"Nome: "<<nome()<<endl;
                                }  

 

Nessa parte, ele está esperando uma função nome() membro do Animais, não do Cavalo. Você terá que criar um Animais::nome().

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.