Cast de classes
Galera, estou precisando criar uma variável do tipo object que poderá instanciar outros tipos que à herdam.
#include <iostream>
#include <cstdlib>
class Animal {
public:
char *nome;
Animal (char *nome) {
this->nome = nome;
}
};
class Cachorro : public Animal {
public:
bool enterraOsso;
Cachorro (char* nome, bool enterraOsso) : Animal(nome) {
this->enterraOsso = enterraOsso;
}
};
class Passaro : public Animal {
public:
bool voar;
Passaro (char* nome, bool voar) : Animal(nome) {
this->voar = voar;
}
};
int main() {
Animal *animal;
animal = new Cachorro("Scooby", true);
std::cout << animal->nome << ", " << animal->enterraOsso << std::endl;
animal = new Passaro("Piopio", false);
std::cout << animal->nome << ", " << animal->voar << std::endl;
return 0;
}
A ideia é que a partir da variável da class super eu poderia acessar os atributos da subclass também.
Não sei se isto é cast ou polimorfismo. No java sei que é possível, mas não estou conseguindo fazer em c++.
Grato desde já pela ajuda de todos....Discussão (2)
Carregando comentários...