如何创建一个将队列作为数据成员的类,该成员在 c++ 中存储另一个类的实例

How to create a class with a queue as a data member which stores instances of another class in c++

本文关键字:成员 实例 另一个 存储 c++ 创建 何创建 一个 队列 数据成员      更新时间:2023-10-16

我有一个类office模拟兽医办公室,当然它处理动物。

我还有另一个类dog,我希望将几个狗的实例生成到办公室类内的队列中,以先出顺序处理动物。

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

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

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

#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类必须在这个类之前定义

你想使用模板编程,并构建一个"模板化"队列或向量对象。

例如

#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);

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