Я пытаюсь выяснить, почему этот оператор доставляет мне проблемы. Я на самом деле позволил Visual Studio создать для меня определение функции, поэтому я не уверен, почему она расстроена. Есть также проблема с распознаванием моего личного указателя узла «сначала», так что, если вы знаете, почему это расстроено, пожалуйста, дайте мне знать! это публично в шаблоне очереди. < /p>
template
class Queue
{
public:
Queue();
virtual ~Queue();
Queue(const Queue& orig);
Queue& operator=(const Queue& right);
bool enqueue(const ElementType& a);
ElementType peekFront() const;
bool dequeue();
bool isEmpty() const;
int Length() const;
void Display(ostream& out) const;
private:
class Node
{
public:
ElementType data;
Node* next;
};
Node* front;
Node* back;
};
//here's the overloaded operator. Visual Studio is upset with its own created definition...
template
inline Queue& Queue::operator=(const Queue & right)
{
//https://www.geeksforgeeks.org/cpp-assig ... erloading/# referenced for operator
if (first == right.first) //either they point to the same place or both are nullptrs
//either way, nothing left to do
return;
else if (first != nullptr)
{
while (first != nullptr)
dequeue();
} //now left is an empty queue and copies can be made!
Node* p = right.first;
while (p != nullptr)
{
enqueue(p->data); //will insert data into left queue
p = p->next; //moves through right queue
}
front = p; //now front gets p! back should've updated with each enqueue
return;
}
< /code>
Я попробовал несколько разных определений, прежде чем позволить Visual Studio сделать свою собственную. Я попытался поместить функцию в класс и попытался исследовать, почему она не работает. Однако я ничего не поднял. Для проблемы PTR «Первый» узел я в замешательстве, потому что он бросает ошибки, но не добавляет красный подчеркивание ни одному из использования первого. Меня сейчас меньше беспокоит это, только потому, что я думаю, что оператор - большая проблема. Решение оно может решить проблему указателя, но Idk. Во -первых, кажется, не нравится, когда их спрашивают: если (первый == nullptr), если это помогает.
Подробнее здесь: https://stackoverflow.com/questions/794 ... list-queue