Jump to content
Fórum Script Brasil
  • 0

Duvida -Metodos virtuais


Question

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.

Link to post
Share on other sites

1 answer to this question

Recommended Posts

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      148692
    • Total Posts
      644524
×
×
  • Create New...