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;
}
 
     
     
    