Ir para conteúdo

Duvida -Metodos virtuais


Pedro Henrique Candido

Posts Recomendados

 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 nao 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.

Link para o comentário
Compartilhar em outros sites

Arquivado

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

  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...