使用链表的类队列的三分法则

Rule of Three for a class Queue using a linked list

提问人:Radical Edward 提问时间:10/1/2022 更新时间:10/1/2022 访问量:97

问:

我需要为我的类 Queue 创建一个复制构造函数和一个赋值运算符,但我对如何去做有点困惑(我可能还应该构建一个析构函数来遵循三法则)。

我使用另一个类“列表”(链表)构建了我的队列。我是否应该在我的类“列表”中使用类似的函数来构建它们(比如我应该在我的类“列表”中有一个析构函数、赋值运算符和一个复制构造函数,并在我的类队列中调用它们)?或者,我可以直接使用我的类“队列”构建它们吗?

下面是我的班级“队列”

class Queue {
 private:
    List list;
 public:
  Queue (){
      // I may need a default constructor
  }
  Queue(const Queue &other){
      /* copy constructor. This and the assignment operator are only things I am currently
         concerned with, but I probably should do the rest to follow the rule of three */
  }
  ~Queue(){
      // destructor
  }
  Queue operator= ( const Queue &other){
      // Assignment Operator.
  }
  // I have these working
  void push(Item);
  void pop();
  Item & peek();
  bool empty();
};

任何帮助将不胜感激

C++ 链表 队列 copy-constructor assignment-operator

评论

1赞 drescherjm 10/1/2022
您是否 https://stackoverflow.com/questions/4172722/what-is-the-rule-of-three/4172724#4172724 咨询过这个问题
0赞 Radical Edward 10/1/2022
还没有,但我现在会:)
0赞 François Andrieux 10/1/2022
3/5/0 规则的美妙之处在于,如果遵守该规则,则无需实现任何特殊成员(将 rue 0 应用于 )。ListQueueQueue
0赞 Ted Lyngmo 10/1/2022
阅读有关“所有权”的文章很好。留下半生不熟的班级并不好。
0赞 Radical Edward 10/1/2022
谢谢大家!我通过将三法则应用于我的班级“列表”来解决这个问题

答: 暂无答案