Boa noite galera, gostaria de saber a respeito do porque não consigo criar um vetor de classes com metodos virtuais pura e se eu colocar com virtual não puro, vai legal.
Segue o trecho do codigo ai.
class Animal
{
private:
std::string nome;
int idade;
public:
Animal(){nome=nullptr;idade=0;}
Animal(std::string nome, int idade): nome(nome), idade(idade){};
void setNome(std::string nome){this->nome=nome;}
void setIdade(int idade){this->idade=idade;}
std::string getNome(){return nome;}
int getIdade(){return idade;}
virtual std::string EmitirSom(){};
virtual std::string ExecutarAcao(){};
};
Zoologico::Zoologico(){
animal=newAnimal[10];}
compila normal, porém se colocar puro.
class Animal
{
private:
std::string nome;
int idade;
public:
Animal(){nome=nullptr;idade=0;}
Animal(std::string nome, int idade): nome(nome), idade(idade){};
void setNome(std::string nome){this->nome=nome;}
void setIdade(int idade){this->idade=idade;}
std::string getNome(){return nome;}
int getIdade(){return idade;}
virtual std::string EmitirSom()=0;
virtual std::string ExecutarAcao()=0;
};
error: allocating an object of abstract class type 'Animal'
unimplemented pure virtual method 'EmitirSom' in 'Animal'
gostaria de entender o conceito do porque do erro.
Pergunta
pedroh7
Boa noite galera, gostaria de saber a respeito do porque não consigo criar um vetor de classes com metodos virtuais pura e se eu colocar com virtual não puro, vai legal.
Segue o trecho do codigo ai.
class Animal { private: std::string nome; int idade; public: Animal(){nome=nullptr;idade=0;} Animal(std::string nome, int idade): nome(nome), idade(idade){}; void setNome(std::string nome){this->nome=nome;} void setIdade(int idade){this->idade=idade;} std::string getNome(){return nome;} int getIdade(){return idade;} virtual std::string EmitirSom(){}; virtual std::string ExecutarAcao(){}; };
compila normal, porém se colocar puro.
class Animal { private: std::string nome; int idade; public: Animal(){nome=nullptr;idade=0;} Animal(std::string nome, int idade): nome(nome), idade(idade){}; void setNome(std::string nome){this->nome=nome;} void setIdade(int idade){this->idade=idade;} std::string getNome(){return nome;} int getIdade(){return idade;} virtual std::string EmitirSom()=0; virtual std::string ExecutarAcao()=0; };
error: allocating an object of abstract class type 'Animal'
unimplemented pure virtual method 'EmitirSom' in 'Animal'
gostaria de entender o conceito do porque do erro.
Link para o comentário
Compartilhar em outros sites
1 resposta a esta questão
Posts Recomendados
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.