복사 생성자를 만드는 데 문제가 있습니다. 나는이 문제를 구글이 // list.cpp이중 연결 목록의 복사 생성자
template <class T>
List<T>::List()
{
head=NULL;
}
template <class T>
List<T>::~List()
{
}
template <class T>
List<T>::List(const List<T>& otherList)
{
}
에서
List.h
template <class T>
struct ListNode
{
T value;
ListNode<T> *next;
ListNode<T> *prev;
ListNode(T theVal)
{
this->value = theVal;
this->next = NULL;
this->prev = NULL;
}
};
template <class T>
class List
{
ListNode<T> *head;
public:
List();
List(const List<T>& otherList); // Copy Constructor.
~List();
};
에서 : 아래 코드를 살펴 보자. 개념은 간단합니다. 새 머리글을 만들고 해당 노드에 이전 목록 노드의 // 값을 할당합니다. // 다음과 같이 시도했습니다.
ListNode<T> *old = head; // pointer to old list.
ListNode<T> *new;// pointer to new head.
while (old->next!=NULL){
new->value = old->value;
old = old->next;
}
// 유일한 문제는 내 새 복사 된 목록을 가리키는 새 머리를 만드는 것입니다.
의 노드의 사본을 작성해야 newList. 어떻게 그럴 수 있니? ListNode * head = 새 ListItem 또는 what ????? –
CerebralGarcon
아니요, 로컬 변수를 선언 하겠지만 'head'멤버에 할당하려고합니다. 나는 대답을 편집했다. 어쩌면 C++에 관한 책을 구해야하고 링크 된 목록에 대해 걱정하기 전에 객체를 만드는 기본 사항을 이해해야합니다. –