Я строю свои собственные структуры данных в C ++ для университета, и у меня проблема со структурой данных «очередь».
В частности, когда я пытаюсь перегрузить оператор присваивания следующим образом:
Queue& operator=(Queue& C){
if(this != &C){
elements = new element_type[C.maxlength];
maxlength = C.maxlength;
length = C.length;
head = C.head;
if(!C.emptyQueue()){
for(int i=0; i<length; i++){
pushQueue(C.readQueue());
}
C.pushQueue(C.readQueue());
C.popQueue();
}
}
return *this;
}
говорит компилятор
"не может связать неконстантную ссылку lvalue типа‘ Queue & ’с rvalue типа‘ Queue ’"
Но с того момента, как мне нужно изменить входной параметр (чтобы прочитать каждое значение из очереди и вставить его в новую очередь, мне нужно вставить каждый элемент), я думаю, что обязательно передавать его без констант.
Есть ли другой способ сделать это, или я что-то упустил?