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= new Animal[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.