我做了一个队列管理系统并创建了一个函数来添加两个队列

I made a queue management system and created a function to add two queues

这是我的代码。我创建了使用操作重载添加两个队列的函数。对于某些共鸣,它总是 return 是空的

#include <iostream>
using namespace std; 

class Queue { 
    int size; 
    int* queue; 
    
    public:
    Queue() { 
        size = 0;
        queue = new int[100];
    }
    //adds an item to  the queue`enter code here`
    void add(int data) { 
        queue[size] = data; 
        size++;
    }
    //removes an item from the queue
    void remove() { 
        if (size == 0) { 
            cout << "Queue is empty"<<endl; 
            return; 
        } 
        else { 
            for (int i = 0; i < size - 1; i++) { 
                queue[i] = queue[i + 1]; 
            } 
            size--; 
        } 
    } 
    // a function to display the queue
    void print() { 
        if (size == 0) { 
            cout << "Queue is empty"<<endl; 
            return; 
        } 
        for (int i = 0; i < size; i++) { 
            cout<<queue[i]<<" <- ";
        } 
        cout << endl;
    }

这是添加队列的功能。这不是 returning 错误。但是每当我尝试添加队列时,它总是 return 一个空队列。可能是什么问题

  Queue operator+(Queue &obj){
      Queue res;
      res.queue = *queue + obj.queue;
      return res;
  }
    
}; 

这里开始主要功能。

 int main() { 
    Queue q1; 
    q1.add(42); q1.add(2); q1.add(8);  q1.add(1);
    Queue q2;
    q2.add(3); q2.add(66); q2.add(128);  q2.add(5);
    Queue q3 = q1+q2;
    q3.print();

    return 0; 
} 

您的代码应该做这样的事情。这段代码不会赢得任何风格奖,我只是想告诉你需要什么

Queue operator+(Queue &obj){
  Queue res;
  res.size = size + obj.size; // work out the new queues size
  res.queue = new int[100]; // allocate memory for new queue
  for (int i = 0; i < size; ++i) // copy from first queue to new queue
      res.queue[i] = queue[i];
  for (int i = 0; i < obj.size; ++i) // copy from second queue to new queue
      res.queue[size + i] = obj.queue[i];
  return res;
}

正如我所说,这段代码以及您编写的其他代码存在各种问题。但希望它能让您了解需要做什么。