I'm not sure how to fix the following error
Cannot cast Cat to its private base class Animal
class Animal {
private:
std::string name;
public:
Animal(std::string n) {
name = n;
}
};
class Cat : Animal {
public:
Cat(std::string n) : Animal(n) {}
};
class AnimalQueue {
private:
std::list<Animal> cats;
std::list<Animal> dogs;
public:
void enqueue(Animal a) {
if (typeid(a) == typeid(Cat)) {
printf("I'm a cat\n");
}
}
}
int main() {
AnimalQueue animalQ;
Cat cat = Cat("kitty");
animalQ.enqueue(cat); // ERROR
return 0;
}