3
연결된 목록 클래스의 간단한 복사본 생성자를 쓰려고합니다. 내 수업은 간단합니다. 첫 번째 노드를 가리키는 변수 First와 마지막 노드를 가리키는 변수 Last가 있습니다.C++ 단순 연결 목록의 복사본 생성자 작성
이것은 하나의 링크이므로 각 노드는 다음 노드를 가리키며 이전에는 없습니다. 복사 생성자를 작성하려고하지만 마지막 노드가 여전히 동일한 주소를 가리키는 것으로 보이는 경우 (복사 된 목록에 무언가를 추가하는 경우) 원본 주소에도 나타납니다.
Heres는 내가 지금까지 무엇을 :
queue::queue(const queue &v){
first = v.first;
last = v.last;
first-> value = v.first->value;
node *curr = first;
node *otherCur = v.first;
while(otherCur->next != NULL){
cout << "------Next is: " << otherCur->next->value << endl;
curr ->next = otherCur->next;
curr->next->value = otherCur->next->value;
curr = curr->next;
otherCur = otherCur->next;
}
curr->next = NULL;
}
두 번째 객체의 모든 노드는 첫 번째 객체의 동일한 노드를 가리 킵니다. 두 번째 목록의 노드에 메모리를 할당하고 첫 번째 목록의 노드에서 값을 복사해야합니다. –
다시 말해, 가리키는 대상 데이터를 복사 할 때 포인터를 복사하는 것입니다 – qxz