如何创建一个将队列作为数据成员的类,该成员在 c++ 中存储另一个类的实例
How to create a class with a queue as a data member which stores instances of another class in c++
我有一个类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);
话虽如此,您希望将指向对象的指针存储在队列或矢量中,而不是复制对象。
相关文章:
- 静态数据成员模板专用化的实例化点在哪里
- 我有一个对象,它将在整个程序的持续时间内实例化,但一个类成员不会,我应该动态分配它吗?
- C++初始化类实例时隐式调用类成员的构造函数
- 受约束的成员函数和显式模板实例化
- 为什么静态数组成员变量在调用对象的实例后不显示任何内容?
- 访问同级类实例的成员
- static_assert私有类成员的类型,没有实例
- "new"创建的实例的所有成员变量是否都存在于堆上而不是堆栈上?
- 实例化多种类型的成员函数模板
- 清除具有已删除赋值运算符的成员的类实例
- 依赖于类成员属性的类实例成员
- 力模板静态成员实例
- C 中的成员实例如何构建
- 使用向量<向量>成员实例化对象时的隔离错误<int>
- 具有静态成员实例的单一实例
- 一个类不能有自己的静态 constexpr 成员实例吗?
- 静态成员与静态常量成员实例化 - 有什么区别?
- 使用静态成员实例的 C++ 中的线程安全单一实例(无延迟实例化)
- 显式类成员实例化
- 带有自身静态const成员实例的c++模板类