void enqueue(Animal a) { a.setOrder(order); ++order; if(a.getType() == "Dog") dogs.push_back(*(Dog*) &a); if(a.getType() == "Cat") cats.push_back(*(Cat*) &a); cout << a.getType() << " named " << a.getName() << " arrives at order : " << a.getOrder() << endl; }
void enqueue(Animal ani){ order++; ani.setOrder(order); if (ani.getType()=="Cat"){ cats.push_back(*(Cat*) &ani); } if (ani.getType()=="Dog"){ dogs.push_back(*(Dog*) &ani); } cout << "Enqueue: " << ani.getName() << " on time: " << ani.getOrder() << endl; }
Animal dequeueAny() { if (CatQueue.empty() && !DogQueue.empty()) { return dequeueDog(); } else if (!CatQueue.empty() && DogQueue.empty()) { return dequeueCat(); } else if (CatQueue.empty() && DogQueue.empty()) { printf("All our queue are empty.\n"); } else { Animal tC = CatQueue.front(); Animal tD = DogQueue.front(); if (tC.getOrder() < tD.getOrder) { Animal tA = tC; dequeueCat(); return tA; } else { Animal tA = tD; dequeueDog(); return tA; } } }
bool isOlderThan(Animal a) { return this->order < a.getOrder(); }