В настоящее время я реализую конструктор копирования для класса Linked List.Когда я создаю новый экземпляр класса с другим связанным списком в качестве параметра, вызывается конструктор для объекта, который я передаю в качестве параметра.Это оставляет меня в замешательстве за пределами веры.Вот раздел, необходимый для понимания того, что происходит в методе main:
int main()
{
LinkedList ll;
LinkedList ll2(ll);
}
Таким образом, вместо вызова конструктора копирования для ll2 вызывается конструктор копирования для ll.Я подтвердил, что размер ll правильно равен 3, прежде чем я попытаюсь скопировать ll в новый LinkedList, а именно ll2.После того как копии имеют одинаковый размер, больше 3, но еще более странный, вызывается конструктор копирования из ll, а не из ll2.Поскольку я использую VC ++, я прошел программу, чтобы подтвердить это.
Вот конструктор копирования для класса LinkedList:
LinkedList::LinkedList(const LinkedList & other)
{
LLNode *otherCurNode = other.GetFirst();
if (otherCurNode != NULL)
{
front = new LLNode(otherCurNode->GetValue(), NULL, NULL);
back = front;
}
else
{
front = NULL;
back = NULL;
}
LLNode *curNode = front;
while (otherCurNode != NULL)
{
Insert(otherCurNode->GetValue(), curNode);
curNode = curNode->GetNext();
otherCurNode = otherCurNode->GetNext();
back = curNode;
}
numNodes = other.GetSize();
}
Приношу свои извинения, если это закончитсяпростая проблема - я довольно плохо знаком с C ++.Любая помощь будет принята с благодарностью!