gyba 0 Denunciar post Postado Junho 14, 2011 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
Kayo Hamid 0 Denunciar post Postado Junho 14, 2011 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