#include<iostream>
#include<string>
#include<queue>
#include<stdexcept>//标准异常库
using namespace std;
//猫狗队列
//在C++中,类是不能加权限修饰符的,只有类的成员或者继承的时候才能加。
//这里是public继承,意思是Pet中所有的访问权限在Dog中不变,如果是peivate继承,那么是说Pet中的所有成员变成Dog的私有成员。
//在子类的构造函数中调用父类的有参构造函数就是下面这么用Cat():Pet("Cat"){};
class Pet
{
private:
string type;
public:
Pet(string type){
this->type = type;
}
Pet(){}
string getPetType(){
return this->type;
}
};
class Dog: public Pet
{
public:
Dog():Pet("dog"){}
};
class Cat: public Pet
{
public:
Cat():Pet("cat"){}
};
/************************以上为题目给出原始接口***********************/
//使用一个带时间戳的Pet类区分猫狗的进入顺序
class PetTimeStamp
{
private:
Pet myPet;
long timeStamp;
public:
//构造函数后面加了:是初始化列表,初始化myPet为p
PetTimeStamp(Pet p, long count):myPet(p){
this->timeStamp = count;
}
Pet getPet(){
return myPet;
}
long getTimeStamp(){
return timeStamp;
}
string getPetType(){
return myPet.getPetType();
}
};
////猫狗队列类,这列面有
c++——猫狗队列
最新推荐文章于 2026-06-15 12:50:34 发布
本文介绍了如何在C++中实现一个猫狗队列,该队列包含两个子队列,分别用于存储带有时间戳的猫和狗对象。通过时间戳来确保按照宠物进入队列的顺序进行弹出。类结构包括基类Pet,派生类Dog和Cat,以及一个用于管理猫狗队列的CatDogQ类。CatDogQ类提供了push、popAll、popDog和popCat等方法,确保正确处理猫狗的入队和出队操作。


974

被折叠的 条评论
为什么被折叠?



