1

我有一office门模拟兽医办公室的课程,当然该办公室处理动物。

我有另一个班级dog,我希望在办公室班级内生成几个狗的实例,以先进先出的顺序处理动物。

我了解在处理原始数据类型时如何使用队列,但是当涉及到队列和广告时,我对几个问题感到困惑。

在 office 头文件中如何实现队列本身?我假设它将进入公共部分,而私人部分将用于提供诊所名称,其地址等办公室的信息。(如果错了,请纠正我!)但是我不相信我可以include <queue>在头文件中使用来允许使用队列我该如何解决这个问题?

4

2 回答 2

2

根据您的描述,我将从以下顺序开始:

#include <queue>

class office { 
    std::queue<dog> patients;
public:
    void enter(dog const &d) { patients.push(d); }

    void treat() { 
        dog patient = patients.front(); 
        patients.pop(); 
        do_treatment(patient); 
    }
};

当然,dog必须在这个类之前定义类。

于 2012-12-06T04:54:13.030 回答
0

您想使用模板编程,并构建一个“模板化”队列或矢量对象。

例如

#inlcude<vector>

class MyFancyClass; //define elsewhere
MyFancyClass ob1,ob2 ,obn; //instantiate objects
std::vector<MyFancyClass> container;

container.push_back(ob1);
container.push_back(ob2);
container.push_back(ob3);

话虽如此,您希望将指向对象的指针存储在 Queue 或 Vector 中,而不是复制对象。

于 2012-12-06T04:53:47.690 回答