Jump to content

Duvida -Metodos virtuais


Pedro Henrique Candido

Recommended Posts

 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 to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...